经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
redis过期策略与内存淘汰机制分析
来源:cnblogs  作者:爱吃猫的鱼i  时间:2019/8/5 10:02:37  对本文有异议

过期策略:

  我们在set key时,可以给一个expire time,就是过期时间

  这段过期时间以后,redis对key删除使用:定期删除+惰性删除

  定期删除指redis默认在100ms内随机抽取一些设置了过期时间的key,检查是否过期,过期就删除。

  定期删除因为随机的,很多key没有删除,就用到惰性删除

  惰性删除是在查询某个key时,redis检查下这个key是否过期,过期就删除。

  

  但是如果定期删除漏掉很多过期key,也没进行查询,不能惰性删除,造成很多过期key堆积内存中,导致内存耗尽,这时使用内存淘汰机制。

 

内存淘汰机制:

  一般使用allkeys-lru:当内存不足以容纳新写入数据时,在键空间内移除最少使用的key

  LRU回收算法:

    使用哈希链表。哈希表由若干个key-value组成,逻辑上这些key,value是无序的。在哈希链表中,每个key-value都有他的前驱key-value、后驱key-value,像双向链表中的节点。这样哈希链表就有序。

    将哈希列表中的key-value按照时间排序。

    每次访问新的key,将其key-value插入到链表最右端。

    当内存不足时,将最左端key-value删除。

    

  

原文链接:http://www.cnblogs.com/zwp-627/p/11299415.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号