Redis的缓存淘汰策略

  1. 查看Redis 最大的占用内存

打开redis配置文件, 设置maxmemory参数,maxmemory 是bytes字节类型, 注意转换

  1. Redis默认内存多少可以用

注意: 在64bit系统下, maxmemory 设置为 0 表示不限制Redis内存使用

  1. 一般生产上如何配置

一般推荐Redis 设置内存为最大物理内存的四分之三

  1. 如何修改redis 内存配置

4.1 配置文件修改

4.2 通过命令修改

  1. 什么命令查看redis内存使用情况

info memory

config get maxmemory

6.如果redis 内存满了超过设置的最大值会怎么样

没有过期时间的 key 将redis的内存用满,为了避免这种情况,则引出redis的内存淘汰策略

7.先说说Redis 的三种key过期删除策略

7.1 立即删除

key 过期立即删除,对cpu不够友好, 用处理器性能换取存储空间 (即空间换时间)

7.2 惰性删除

开启憜性淘汰,lazyfree-lazy-eviction=yes

访问key时候判断key是否过期,对内存不够友好,用存储空间换取性能 (即时间换空间)

7.3 定期删除

定期删除策略每隔一段时间执行一次删除过期键操作并通过限制删除操作执行时长和频率来减少删除操作对CPU时间的影响。

周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度
特点1:CPU性能占用设置有峰值,检测频度可自定义设置
特点2:内存压力不是很大,长期占用内存的冷数据会被持续清理
总结:周期性抽查存储空间 (随机抽查,重点抽查)

|------------------------------------------------------------------------------------------------------------------------------------------------|
| redis默认每隔100ms检查是否有过期的key,有过期key则删除。 注意:redis不是每隔100ms将所有的key检查一次而是随机抽取进行检查( 如果每隔100ms,全部key进行检查,redis直接进去ICU)。因此,如果只采用定期删除策略,会导致很多key到时间没有删除。 |

定期删除策略的难点是确定删除操作执行的时长和频率:如果删除操作执行得太频繁或者执行的时间太长,定期删除策略就会退化成立即删除策略,以至于将CPU时间过多地消耗在删除过期键上面。如果删除操作执行得太少,或者执行的时间太短,定期删除策略又会和惰性删除束略一样,出现浪费内存的情况。因此,如果采用定期删除策略的话,服务器必须根据情况,合理地设置删除操作的执行时长和执行频率。
如果定期删除是, 从来没有被抽到, 惰性删除也从来没有被点中使用过,也依然会有大量的过期key堆积在内存中,也会导致redis内存空间紧张或者很快耗尽

  1. redis 7 配置文件的内存淘汰策略
  1. lru 和 lfu 算法的区别是什么
  1. 细说8中淘汰策略
  1. 如何使用

不过在日常使用中避免bigkey 以及开启憜性淘汰,lazyfree-lazy-eviction=yes

相关推荐
倔强的石头_13 小时前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
用户3169353811833 天前
Java连接Redis
redis
倔强的石头_3 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab4 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence4 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神4 天前
三、用户与权限管理
数据库·mysql
小小工匠5 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
麦聪聊数据5 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡5 天前
【MySQL数据库】数据类型与表约束
数据库·mysql