在redis默认情况下,不进行数据淘汰noevction,一旦缓存被写满了,再有写请求,redis直接返回错误。
- valotile-ttl:在进行筛选时,根据过期时间先后顺序进行一个删除,越早过期的越先被删除
- valotile–random:在设置了过期时间的键值对中,进行随机删除
- valotile-lru:会使用LRU算法筛选设置了过期的键值对
- valotile-lfu:会使用LFU算法筛选设置了过期的键值对
LRU算法
算法Least Recently Used,最近最少使用原则,最近不用的数据会被筛选出来,最近频繁使用的数据会保留
lru算法,需要使用链表来管理所有缓存数据,带来内存开销。有数据被访问时,需要执行链表数据的移动,会降低redis性能。
记录数据最后一次访问的时间截,第一次会随机选出N个数据,作为一个候选集合,作一个排序,再把lru最小的数据进行淘汰
LFU算法
算法Least Frequently Used,最不常用原则。根据历史访问频率来淘汰数据。
每个数据块都有一个引用计数,按引用计数来排序。如果引用计数相同,按照时间排序
逐出算法选择:maxmemory-policy noeviction
原文地址:https://blog.csdn.net/Byron__/article/details/132271181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_12823.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。