Redis 过期淘汰机制 和session过期时间

           

背景:今天在SpringSecurity的短信登录那边,要把我存在session里面的验证码加个过期时间。这就引起对Redis和session这两个东西过期时间的考虑,即他们过期之后该何去何从。

1.session

1)浏览器关掉了,session就没有了。

 session.setMaxInactiveInterval(5 * 60);

2)如图上述,设置了session过期时间,再过期之后,session是自动删除的,默认session存留时间是30min

2. Redis

1)删除策略目标

在内存和CPU之间找一个平衡,顾此失彼都会造成redis性能下降

2)删除机制

懒惰删除,定期删除

定期删除:定期随机选择几个数据,要是数据过期就删除

懒惰删除:在用户get该数据的时候。发现该数据有没有过期,要是过期就删除返回给用户就是null值

3)逐出算法

要是用户在存入一个数据的时候,redis会调用freeMemoryIfNeeded()检测内存是够充足,要是不符合最低要求的存储要求,redis就会临时删除一些数据为当前指令清理存储空间。这个策略就是逐出算法。要是所有数据都尝试清理了,还是不行就会报错。

相关配置

volatile-* 检测易失数据

allkeys-*检测全库数据

  • volatile/allkeys-lru:挑选最近最少使用的数据淘汰
  • volatile/allkeys-lfu:挑选最近使用次数最少的数据淘汰
  • volatile-ttl:挑选将要过期的数据淘汰
  • volatile/allkeys-random:任意选择数据淘汰
  • no-enviction:禁止逐出数据 但是这样会内存溢出

ok 886 马上就下班了 回家回家

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值