Redis缓存过期策略

Redis默认内存可达到系统总内存,在32位系统下默认3GB。可通过configgetmaxmemory查看和setmaxmemory设置。淘汰策略包括立即删除、惰性删除和定期删除。LRU和LFU是常见的缓存淘汰算法。应根据需求合理设置删除策略。
摘要由CSDN通过智能技术生成

Redis

内存查看

Redis默认能用多少内存?

使用config get maxmemory命令查看

  • 在64位操作系统默认可以飙到你的内存大小,0代表你的物理内存
  • 在32位操作系统下,默认3G内存

在这里插入图片描述

通过config set maxmemory设置内存值内存不够报OOM异常

在这里插入图片描述

淘汰策略

立即删除

对CPU不太好,用处理器性能换内存(时间换空间)

惰性删除

对memory不太好,用空间换时间

定期删除

定期删除是前两种策略的折中

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

  1. CPU性能占用设置有峰值,检测频率可以自定义
  2. 内存压力不是很大,长期占用内存的冷数据会被清理

举例

redis默认每隔100ms检查是否有过期key,有过期key则删除;

并不是删除所有的key而是随机抽查;

我们应该合理的根据需求设置删除操作的执行时长执行频率

八种缓存淘汰策略

LRU最近最少使用页面算法:淘汰最长时间未被使用的的页面

LFU最近最不常用页面置换算法:淘汰一定时期内被访问最少次数的页面

例子

某次Time10分钟,如果每一分钟进行一次调页,主存块为3,页走向2 1 2 1 2 3 4假设页面到4发生缺页中断;

按照LRU淘汰页面1,按照LFU淘汰3

在这里插入图片描述

你平时用哪一种?

  • 所有的key都是最近最经常使用的:对所有key使用LRU
  • 所有的key访问概率接近:对所有的key随机删除
  • 如果对于数据有足够的了解:可以删除马上要过期的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值