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

相关推荐
虹科网络安全4 小时前
RDI 多数据源管道:把分散的数据汇入统一 Redis 数据层
经验分享·redis·艾体宝·艾体宝it·艾体宝redis
衡石科技5 小时前
兼顾查询速度与数据时效:衡石的缓存和分析加速
缓存·数据缓存·数据时效
我不会起名字3226 小时前
Redis 从 0 到 1(三十七·收官):36 篇浓缩成 1 张知识地图 + 50 项生产 Checklist
redis·go·知识体系·checklist·收官
Zan7 小时前
SQLite + SQLx 实战:为什么已经发布的数据库迁移文件,绝对不能再修改?
数据库·后端·面试
2601_967987377 小时前
安装 Redis 或 Redis Stack
linux·windows·redis·macos·安装
这个DBA有点耶8 小时前
数据同步的三个工程底线:DDL同步、断点续传、一致性校验——开源CDC的边界与KFS的路径
数据库·dba·代码规范
小番茄程序猿9 小时前
Redis 编码压测 59 轮:HSET 快 23 倍是假象,SMEMBERS 慢 30 倍是真的
redis·后端
SelectDB9 小时前
列式存储为什么适合分析类负载?原理、限制与日志场景应用
数据库
数据库小学妹10 小时前
MySQL大字段治理:行溢出机制、覆盖索引与拆表
数据库·mysql·性能优化