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

相关推荐
2301_821369613 分钟前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
星空露珠6 分钟前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
m0_561359677 分钟前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
sheji526116 分钟前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
海域云-罗鹏32 分钟前
国内公司与英国总部数据中心/ERP系统互连,SD-WAN专线实操指南
大数据·数据库·人工智能
qq_423233901 小时前
如何用FastAPI构建高性能的现代API
jvm·数据库·python
凯子坚持 c1 小时前
Qt常用控件指南(8)
开发语言·数据库·qt
春生野草1 小时前
Redis
数据库·redis·缓存
weixin_499771551 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
weixin_452159551 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python