本文介绍: 一般情况,建议设置为总数据的15%到30%,在实际生产环境下,可以设置50%。redis中每一个value对应一个内存地址,在expires一个内存地址对应一个时间截,如果达到指定时间,就完成删除处理记录数据最后一次访问时间截,第一次随机选出N个数据,作为一个候选集合,作一个排序,再把lru最小数据进行淘汰。在redis默认情况下,不进行数据淘汰noevction,一旦缓存被写满了,再有写请求redis直接返回错误。惰性删除数据到达过期时间,先不做删除,直到下次访问该数据时,再做删除

redis默认情况下,不进行数据淘汰noevction,一旦缓存被写满了,再有写请求,redis直接返回错误

过期数据淘汰策略,先限定了,数据都是在过期范围

所有数据淘汰策略

LRU算法
算法Least Recently Used最近最少使用原则,最近不用的数据会被筛选出来,最近频繁使用的数据会保留

lru算法,需要使用链表管理所有缓存数据,带来内存开销。有数据被访问时,需要执行链表数据的移动,会降低redis性能

记录数据最后一次访问的时间截,第一次会随机选出N个数据,作为一个候选集合,作一个排序,再把lru最小的数据进行淘汰

上面提到的N的配置maxmemory-samples 5

LFU算法
算法Least Frequently Used,最不常用原则。根据历史访问频率来淘汰数据。

个数据块都有一个引用计数,按引用计数来排序。如果引用计数相同,按照时间排序

  • 新加入的数据放在队尾,引用计为1
  • 当数据被访问,引用计数增加,队列重排
  • 当需要淘汰数据时,将队列尾部的数据块删除

逐出算法选择maxmemory-policy noeviction

原文地址:https://blog.csdn.net/Byron__/article/details/132271181

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12823.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注