redis缓存的淘汰策略
redis是项目缓存大户,可以说90以上的项目都用它。但是redis也好比一个容器,如果满了总是需要处理后续流入的数据,是该将前面流入的数据删除,还是直接不让后面的数据流入,又或者将最久没有使用的数据删除,或将使用频率低的数据删除,或删除剩余生存时间短的数据?这些都需要按实际情况进行选择?
1 直接不让后面的数据流入(noeviction)
这种适合数据不能被容许被丢弃的情况,也就是将redis作为持久化存储了。目前在我做的项目中还是有用到这种情况。
2 最久没有使用的数据删除(allkeys-Iru)
对所有key做LRU淘汰,不管有没有设置TTL。这是最常用的策略之一,适合纯缓存场景。
3 使用频率低的数据删除(allkeys-lfu)
是基于访问频率淘汰,比LRU更能应对突发流量。allkeys-lfu现在是推荐的默认策略。
4 删除剩余生存时间短的key(volatile-ttl)
优先删除剩余生存时间短的key,适用于大量短期key的堆积场景。
如何设置:直接设置redis配置文件永久生效
▼js复制代码# 先设置最大内存(必须先设 maxmemory,淘汰策略才会生效) maxmemory 1gb # 比如限制 Redis 最多用 1G 内存 # 然后设置淘汰策略 maxmemory-policy allkeys-lfu
以上内容只做记录,如有错误还请各位鱼友版帮忙指出。
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
27届大四民办本科,boss直聘沟通206,简历10,面试0😭,求大佬看看简历是否有不足的地方······现在实习的公司是初创公司,项目完工,钱要投去营销推广,下个月要被裁掉了,投递Java开发岗位居多,实习全职均有投递
3
米哈游2027校招|游戏SDK客户端开发·C++ / Kotlin / Swift
2
20个人的小微,有四个人审批
5
米哈游2027校招|游戏引擎开发·C++/动画/物理
3
22届双非专升本在上海做 java 开发4年了,一直没跳槽,在一家外包公司,4年工资只涨了一千,还是去年说要离职才申请下来涨这么点,工作这几年技术几乎没怎么长进,可能是有点太安于现状了吧。目前想跳槽转 AI 应用开发,不知道怎么开始准备,大佬们有什么好的建议吗,boss 上几乎都是外包在打招呼,我看上的岗位打招呼几乎都是已读不回或直接没消息,现在这行情开发还能干吗,附简历
6
