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个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
今天面了两家公司,面试时间都比较短直接总结到一起了第一家1. 自我介绍2. 公司两个项目开发中,用到 Codex 或 Claude Code 了吗?3. 具体是用来写什么?用的是最多的哪个?4. Claude Code 用的是什么模型?5. 什么时候开始用的?(精确到具体月份)6. 是官方账号还是中转站?7. 当时开发一天用多少钱?8. 平时用到什么 Skill 或 MCP 吗?9. Claude
5
找实习从7月22号开始投,现在也总算是有offer了
5
怎么会有笨蛋从一月到现在,背了7个月的面试题,还啥都不会呢,到底背哪里去了,该怎么办
3
【入职求助贴】萌新刚入职某大厂做后端开发,目前还在试用期。最近遇到一个棘手的问题,想向大家求助一下。入职不久,leader 给我派了一个任务。跟我说是0.5天就可以解决,我刚毕业入职,做了一个星期没有做出来。实现一个收集定时成功任务的案例。听起来好像不复杂,但我自己摸索着做了一整个星期,到现在还没达到预期效果。这一周我基本是“边学边做”的状态,遇到卡点也会每天主动找 leader 沟通进度和疑问。
3
#字节内推# 实习、校招、社招均有岗位
5
