redis缓存回收算法 LRU算法

参考文献:redis官方文档

redis的缓存

redis可以使用maxmemory命令来配置redis存储数据时可以使用的最大内存大小,在redis.conf中设置,为0代表没有限制,默认也是没有限制。
当内存达到最大时,这时候就需要采取恰当的行动来解决,这就是回收策略

回收策略

redis支持多种不同的策略:

  1. noeviction:但内存达到限制无法再执行命令时,直接返回错误
  2. allkeys-lru: 按照lru算法来回收数据
  3. volatile-lru:按照lru算法来回收过期的数据
  4. allkeys-random: 随机回收数据
  5. allkeys-random: 随机回收过期了的数据
  6. volatile-ttl:回收过期的数据,按照过期的时间顺序
    注意,redis采用的lru算法只是使用了一种近似的lru算法,真正的lru算法需要消耗大量的内存所以不被采用

什么是LRU算法

lru,least recently used 最近最少使用,意思为选择出最少被使用的数据
适合于热点数据的处理上,对于偶发的批量操作性能上就不是很好了。
原理:一个栈,每次访问数据的时候都往栈顶加数据,当栈满了时,就会删除栈尾的数据,当访问到的数据已经在栈中存在时,就会把数据重新放会栈顶。这样就可以实现不停的淘汰最少访问的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值