springcloud extjs6.5 ajax optimization uiviewcontroller swiftui vue教程 vue原理 vue网页 直销系统源码 jquery绑定change事件 mysql默认密码 rxjava线程切换 完美解决cpu利用率低 java不定长数组 linuxmysql启动命令 mysql 连接 python编程教程 python编程工具 java教学 java对象 java正则表达式匹配 java实现队列 python源码 嵌入式linux驱动程序设计从入门到精通 电池救星 vbs编程教学 c语言代码表白 微信猜拳 小米9截屏 python延时函数 dnf选择角色卡死 德玛上单天赋 codeblock 黑域使用教程 坐标反算 达芬奇resolve ps反光效果 ppt分节 ppt去掉背景音乐
当前位置: 首页 > 学习教程  > 编程语言

Redis内存回收策略

2021/2/13 20:22:40 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

Redis的六种内存回收策略 Redis中提供了多种内存回收策略,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间。 noeviction:默认的策略,当内存使用达到阈值…

Redis的六种内存回收策略

Redis中提供了多种内存回收策略,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间。

  • noeviction:默认的策略,当内存使用达到阈值的时候,所有引起申请内存的命令会报错。
  • allkeys-lru:从数据集(server.db[i].dict)中淘汰最近最少使用的数据。如果我们的应用对缓存的访问都是相对热点数据,那么可以选择这个策略。
  • allkeys-random:随机移除某个key。如果我们的应用对于缓存key的访问概率相等,则可以使用这个策略。
  • volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰。
  • volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰。
  • volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰。

Redis中的LRU使用机制

实际上Redis实现的LRU并不是可靠的LRU,也就是名义上我们使用LRU算法淘汰内存数据,但是实际上被淘汰的键并不一定是真正的最少使用的数据,这里涉及到一个权衡的问题,如果需要在所有的数据中搜索最符合条件的数据,那么一定会增加系统的开销,Redis是单线程的,所以耗时的操作会谨慎一些。为了在一定成本内实现相对的LRU,早期的Redis版本是基于采样的LRU,也就是放弃了从所有数据中搜索解改为采样空间搜索最优解。Redis3.0版本之后,Redis作者对于基于采样的LRU进行了一些优化,目的是在一定的成本内让结果更靠近真实的LRU。


本文链接: http://www.dtmao.cc/news_show_700469.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?