Redis的内存淘汰策略

Redis 的内存淘汰策略 主要是在内存使用接近 maxmemory 限制时触发,用于决定哪些数据需要被删除以释放空间。常见的策略有以下 8 种:

  1. noeviction

    • 默认策略,当内存不足时,不会删除任何数据,而是直接返回错误(通常是写入命令报错)。
    • 适合对数据完整性要求高的场景。
  2. volatile-lru

    • 从设置了过期时间的键 中,使用 LRU(Least Recently Used,最近最少使用) 算法淘汰数据。
  3. volatile-lfu

    • 从设置了过期时间的键 中,使用 LFU(Least Frequently Used,最少使用频率) 算法淘汰数据。
  4. volatile-random

    • 从设置了过期时间的键中,随机删除一些键。
  5. volatile-ttl

    • 从设置了过期时间的键 中,优先删除剩余生存时间(TTL)最短的键。
  6. allkeys-lru

    • 从所有键 中,使用 LRU 算法淘汰数据。
  7. allkeys-lfu

    • 从所有键 中,使用 LFU 算法淘汰数据。
  8. allkeys-random

    • 从所有键中,随机删除一些键。
策略名称 作用范围 淘汰规则
noeviction 无 不删除数据,直接返回错误
volatile-lru 仅过期键 最近最少使用(LRU)
volatile-lfu 仅过期键 最少使用频率(LFU)
volatile-random 仅过期键 随机删除
volatile-ttl 仅过期键 TTL 最短优先
allkeys-lru 所有键 最近最少使用(LRU)
allkeys-lfu 所有键 最少使用频率(LFU)
allkeys-random 所有键 随机删除
相关推荐
Random Glow1 小时前
二级索引与回表:一次回表到底多贵
数据库·mysql·性能优化·innodb·索引
CarIise1 小时前
JDBC 与数据库事务核心
数据库·笔记
见闻小天地1 小时前
新手入门:印刷包装设备的伺服和PLC运动控制方案各管什么?七步选型讲清楚
运维·网络·数据库·人工智能
海鸥-w2 小时前
Redis 配置与排错说明
java·数据库·redis·bootstrap
jaysee-sjc2 小时前
【苍穹外卖】Day12:工作台数据看板与 Excel 报表导出
java·开发语言·数据库·spring boot·spring·微信·excel
MetaLite2 小时前
Spring 同一个类里调用 @CacheEvict,为什么缓存没清掉?
java·spring·缓存
hweiyu002 小时前
Redis命令:SMOVE
redis·缓存
可乐ea2 小时前
Agent 隔离为什么失效:CPU 缓存成了跨机器信道
缓存·ai智能体·红队测试·沙箱安全·agent隔离·侧信道
sunburn-2 小时前
数据库聚合查询完整教程:从基础函数到实战统计
java·数据库·mysql·数据库开发
小蒜学长3 小时前
基于 Spring Boot 的英语单词背诵系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端