什么是Redis
Redis是一个开源的基于内存的键值对储存数据库,可以用作缓存、数据库、消息中间件及排行榜应用程序等。
Redis键的过期设置
在Redis中,键过期是指键在一定时间内失效,Redis提供了两种设置键过期的方式:一种是通过EXPIRE命令设置过期时间;另一种是通过SET命令设置key和value的同时设置过期时间。
EXPIRE命令设置过期时间
EXPIRE命令用于设置键的过期时间,它的语法如下:
EXPIRE key seconds
其中,key为需要设置过期时间的键,seconds为过期时间,以秒为单位。
例如,以下命令用于设置名为"test"键的过期时间为10秒:
EXPIRE test 10
执行以上命令后,10秒后键"test"自动被删除。
SET命令设置过期时间
SET命令用于设置键和值,并且可以同时设置键的过期时间。
SET命令的语法如下:
SET key value [EX seconds]
其中,key为键,value为值,[EX seconds]为可选参数,用于设置过期时间,以秒为单位。
例如,以下命令用于设置名为"test"键的过期时间为10秒:
SET test testvalue EX 10
执行以上命令后,10秒后键"test"自动被删除。
注意,如果同时使用EXPIRE和SET命令设置键的过期时间,则以SET命令设置的过期时间为准。
Redis键过期的处理
在Redis中,过期键会被自动删除,但是有些情况下需要对过期键进行定期清理,以释放空间。Redis提供了两种处理过期键的方式:一种是惰性删除方式(默认方式),即当访问过期键时才进行删除;另一种是定期删除方式,即Redis会在一定间隔时间内随机检查一批过期键并进行删除。
惰性删除方式
惰性删除方式是Redis默认的删除方式,它在访问过期键时才进行删除。例如,当执行以下命令时:
EXPIRE test 10
Redis会在10秒后,对名为"test"的键进行删除,即当执行以下命令时:
GET test
Redis会返回nil,表示键不存在,同时僵尸键被删除。
定期删除方式
定期删除方式是Redis在一定间隔时间内检查过期键并进行删除,它的执行频率由hz参数决定。
hz参数用于设置Redis一秒钟执行几次定期删除操作,默认为10次。可以通过以下命令查看当前hz值:
CONFIG GET hz
例如,以下命令将hz值设置为100:
CONFIG SET hz 100
执行以上命令后,Redis每秒将执行100次定期删除操作。
总结
Redis提供了两种设置键过期时间的方式:EXPIRE命令和SET命令,并且提供了两种删除过期键的方式:惰性删除和定期删除。在实际开发中,根据实际场景和需求选择适合的过期时间和删除方式是非常重要的。