�★☆★☆★☆★☆★☆★☆�

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则更注重的是数据的频率使用情况。

 

posted @   qd372502  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示