3.1过期时间设置及其原理

对于一些临时数据 我们会设置超时时间,减少数据维护的工作量
在linux命令窗口经常使用的命令有:
expire key seconds
setex(String key,int second,String value)
ttl key 查看key还剩余多少时间
persist key 把key的过期时间取消 进行持久化
那么数据过期以后就会被删除 ,这个删除有什么讲究呢?
redis删除过期数据的方式有两种
passive(消极方式)和active(积极方式)
何为消极方式呢?
消极方式就是 你不用它,它就在哪里磨洋工 当你用到它了 它会说:不好意思 小爷已经下班了
就是这样的 当应用访问这个数据是 redis发现它已经过期就会删除掉这个数据
积极方式呢?
这个有点小复杂 如果把redis比作监狱长的话,那么过程是这样的
监狱长会,周期性的在有期徒刑这一堆犯人里取样检查(注意哦 不是全部的 而是抽样检查 样本shuj) 选择一部分进行释放。这个周期是每秒钟10次 下图有真相哦 这个是redis官网给出的说法
在这里插入图片描述
下面句话非常简单了,大概的意思是(准确意思请找专业翻译)
1、在设置了过期时间的key们里随机抽取20个
2、一经发现过期则删除
3、如果发现被删除的keys数量超过样本总数的25%,则再次发起这样一个抽样过程(这样看来如果超过5个的话就达标了)

那么问题来了
就有那么一部分杠精会想到这样一个问题:
有积极删除方式就够了,问什么还要积极删除方式呢?
官网里里有这样一句话
Of course this is not enough as there are expired keys that will never be accessed again.
大致意思是“有一些keys是永远不会被访问的”,那么对于这些key难道要他们永远的存在于文件当中吗
所以才有了积极方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值