本文主要是介绍redis 过期策略与内存淘汰,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在工作中,我们有这样一种工作场景:在redis中将D日的数据保存至D+1日。为了节省内存,我们将存入redis的数据过期时间设置为25小时-当前小时数。
比如13点存入redis的数据过期时间设置为25-13=12小时,所有数据都会在D+1日凌晨一点过期。因此
此处不讨论将过期时间打散,不恰好集中在凌晨一点。
redis的过期设置有哪些方式
redis对使用者提供了四种设置过期时间方式:
- expire key ttl 秒级
- pexpire key ttl 毫秒级
- expireat timestamp 秒级 指定时间过期
- pexpireat timestamp 毫秒级 指定时间过期
这四种过期时间的方式底层的接口是都pexpireat 方法。
方式一:SETEX key seconds value
典型的只设置key的超时时间
方式二:set key value [EX seconds] [PX milliseconds] [NX|XX]
将设置key的超时时间与setnx结合起来,形成一个原子化的操作,在redis-cli中操作时也会有指令提示
参数解释:
EX seconds:设置失效时长,单位秒
PX milliseconds:设置失效时长,单位毫秒
NX:key不存在时设置value,成功返
这篇关于redis 过期策略与内存淘汰的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!