Redis淘汰策略-231005
Redis的内存淘汰策略有哪些:
- noeviction:当内存不足以容纳新写入数据时,新写入操作会报错;
- allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。(这个是最常用的);
- allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。设置过期时间的键空间选择性移除;
- allkeys-lfu:当内存不足时,Redis会在全部的key中干掉一个最少频次使用的key,最近最少使用频次/频率
- volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key;
- volatile-lfu:在内存不足时,Redis会在设置了生存时间的key中干掉一个最少频次使用的key,最近最少使用频次/频率(例如最近一共使用了10个key,key1使用2次,key2使用了1次)
- volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key;
- volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除
lru和lfu是什么意思?
LRU是Least Recently Used的缩写,表示最近最少使用算法。它是一种缓存淘汰策略,用于在缓存空间不足时决定将哪些数据从缓存中淘汰出去。LRU算法会优先淘汰最近最少被访问的数据,即最长时间未被使用的数据。这种策略的优势在于,如果某个数据最近没有被使用过,那么很可能在将来也不会被使用到,因此可以优先将其淘汰,腾出空间给更有可能使用的数据。
LFU则是Least Frequently Used的缩写,表示最不经常使用算法。LFU是另一种缓存淘汰策略,它根据数据被访问的频率来决定淘汰哪些数据。LFU算法会优先淘汰访问频率最低的数据,即最少被使用的数据。这种策略的优势在于,如果某个数据使用频率很低,那么它在将来的使用可能性也较小,因此可以优先将其淘汰,为更有可能被使用的数据腾出空间。
所以,LRU和LFU都是常见的缓存淘汰策略,但侧重点略有不同。LRU注重的是最近的使用情况,而LFU则更注重的是数据的频率使用情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix