7.生存时间TTL



生存时间TTL

有时效的数据,比如限时优惠活动、缓存或验证码等,过了一定的时间就需要删除这些数据。

设置过期时间

Redis可以使用EXPIRE命令设置一个键的生存时间,到时候后Redis会自动删除它。默认不设置时间的为永久存在。

命令:EXPIRE key seconds   //上述命令标识key键在seconds秒后会被删除,

 

实现访问频率的限制:例如要限制每个用户每分钟最多能访问100次。

思路:每个用户存储“rate.limiting:用户ip”字符串类型键,用户每次访问则递增,第一次访问时要设置该键的生存时间为1分钟。每次用户访问都读取键值,判断超过100则限制。该键每分钟会自动删除,用户下一分钟可以重新计算限制值。

 

实现缓存:为了提高网站的负载能力,常常需要将一些访问频率较高但是对CPUIO资源消耗较大的操作的结果缓存起来,并希望让这些缓存过一段时间自动过期。

可以通过给键设置生存时间的方式来实现。每次访问先查询缓存,有则返回缓存值,没有则重新计算并放缓存并同时设置缓存生存时间。

 

 

但是服务器的内存是有限的,Redis能使用的内存也是有限的。缓存键的生存时间设置的过长会导致Redis占满内存,设置过短会导致缓存命中率过低。实际开发中会发现很难为缓存键设置合理的生存时间,为此可以限制Redis能够使用的最大内存,并让Redis按照一定的规则淘汰不需要的缓存键,这种方式在只将Redis用作缓存系统时非常实用。

过期删除

Redis的过期删除策略有三种:定时删除、惰性删除和定期删除Redis服务器实际使用的是惰性删除和定期删除两种策略,通过配合使用这两种策略,服务器可以很好的在合理使用CPU时间和避免浪费内存空间之间取得平衡。

 

当主服务器删除一个过期键之后,它会向所有从服务器发送一条DEL命令,显示的删除过期键。而从服务器即使发现过期键也不会自作主张删除它,而是等待主服务器发来DEL命令,这种统一、中心化的过期键删除策略可以保证从服务器数据的一致性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值