
除了利用Redis中自身的过期时间设置功能之外,还可以采用Redis提供的更进一步的几种方法来解决Redis中过期时间延长的问题:
1. 采用Set或mset操作
在Redis中,每次设置都会将原有的key设置覆盖掉,导致过期时间的重新设置。例如,我们可以使用set或mset命令来设置新的键存储,并重新设置新的过期时间:
“`angular2html
SET key value EX seconds
MSET key value EX seconds
例如:```angular2htmlSET key_name ABCDEFG 3600
2. 采用expire命令
expire命令用于更改键的过期时间,在使用该命令过期时间延长时,需要注意的是,该命令以秒计算,如果设置的秒数小于等于现有的过期时间,则不会产生变化。它的函数原型如下:
“`angular2html
EXPIRE key_name seconds
例如:```angular2htmlEXPIRE key_name 3600
3. 采用px命令
px命令也是用于设置过期时间的,它以毫秒计,和expire类似,如果设置的毫秒数大于现有的过期时间,则设置失败,它的函数原型如下:
“`angular2html
PX key_name milli-seconds
例如:```angular2htmlPX key_name 3600000
4. 采用persist命令
persist命令可以用于删除已设置的过期时间,如果未设置任何过期时间则不受影响:
“`angular2html
PERSIST key_name
上述这几种方法均可以用于解决Redis中过期时间延长的问题,总结起来就是这几个时间设置或删除操作。每种方法都有各自的优势,相应的应用场景也不尽相同,根据具体需求,灵活选择上述方法即可。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
网络时断时续是什么原因呢?
1、ARP攻击 针对ARP的攻击主要有两种,一种是DOS,一种是Spoof。 ARP欺骗往往应用于一个内部网络,我们可以用它来扩大一个已经存在的网络安全漏洞。 如果你可以入侵一个子网内的机器,其它的机器安全也将受到ARP欺骗的威胁。 同样,利用APR的DOS甚至能使整个子网瘫痪。 2、对ARP攻击的防护 防止ARP攻击是比较困难的,修改协议也是不大可能。 但是有一些工作是可以提高本地网络的安全性。 首先,你要知道,如果一个错误的记录被插入ARP或者IP route表,可以用两种方式来删除。 a. 使用arp –d host_entry b. 自动过期,由系统删除 这样,可以采用以下的一些方法: 1). 减少过期时间 #ndd –set /dev/arp arp_cleanup_interval #ndd -set /dev/ip ip_ire_flush_interval =毫秒 默认是 加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现ARP请求和回复,请不要在繁忙的网络上使用。 2). 建立静态ARP表 这是一种很有效的方法,而且对系统影响不大。 缺点是破坏了动态ARP协议。 可以建立如下的文件。 08:00:20:ba:a1:f2 user. 08:00:20:ee:de:1f 使用arp –f filename加载进去,这样的ARP映射将不会过期和被新的ARP数据刷新,除非使用arp –d才能删除。 但是一旦合法主机的网卡硬件地址改变,就必须手工刷新这个arp文件。 这个方法,不适合于经常变动的网络环境。 3).禁止ARP 可以通过ifconfig interface –arp 完全禁止ARP,这样,网卡不会发送ARP和接受ARP包。 但是使用前提是使用静态的ARP表,如果不在apr表中的计算机 ,将不能通信。 这个方法不适用与大多数网络环境,因为这增加了网络管理的成本。 但是对小规模的安全网络来说,还是有效和可行的
redis可以设置生效开始的时间吗
一般是根据需求来进行设置。 redis通过expire命令来设置key的过期时间。 语法(key, expiration)1. 在小于2.1.3的redis版本里,只能对key设置一次expire。 redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。 2. redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。 3. 如果对key使用set或del命令,那么也会移除expire time。 尤其是set命令,这个在编写程序的时候需要注意一下。 4. redis2.1.3之前的老版本里,如果对volatile keys 做相关写入操作(LPUSH,LSET),和其他一些触发修改value的操作时,redis会删除该key。 也就是说 (key,expiration);(key,field,value);(key) //return nullredis2.1.3之后的版本里面没有这个约束,可以任意修改。 (key,100);(key,expiration);(key)(key)//redis2.2.2 return 101; redis<2.1.3 return 1;5. redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。 其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。
发表评论