Redis数据过期、淘汰策略

数据过期策略:

惰性删除:

设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key。

这种方式对cpu友好(只在用的时候判断要不要删除不用一直判断),对内存不友好(过期的key一直存在内存中)

定期删除:

每隔一段时间,我们就对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。

定期删除有两种方式:

优点:可以通过限制删除操作执行的时长和频率来减少删除操作对CPU 的影响。另外定期删除,也能有效释放过期键占用的内存。 缺点:难以确定删除操作执行的时长和频率。

Redis实际上是两种策略配合使用的!!!

数据淘汰策略:

  • 内存满的时候不能写入(默认)

  • 剩余存活时间最小的被淘汰

  • 两种随机淘汰:全体key随机淘汰、设置了存活时间的key随机淘汰

  • 两种LRU淘汰:全体keyLRU淘汰、设置了存活时间的keyLRU淘汰

  • 两种LFU淘汰:全体keyLFU淘汰、设置了存活时间的keyLFU淘汰

相关推荐
黄名富1 小时前
Kafka 分区管理
java·分布式·缓存·kafka
Rcfee2 小时前
Redis高危漏洞-GHSA-whxg-wx83-85p5:用户可能会使用特制的 Lua 脚本来触发堆栈缓冲区溢出
redis
dengjiayue2 小时前
MySQL 与 Redis 的数据一致性问题
数据库·redis·mysql
乌拉拉干开发3 小时前
Redis消息队列,获取message.getBody(),有乱码问题解决。
redis
ChangYan.3 小时前
Windows的Redis查看自己设置的密码并更改设置密码
数据库·redis·缓存
缘友一世4 小时前
Redisson和可重入锁初认
java·redis
qq_392794485 小时前
如何解决Webview和H5缓存问题,确保每次加载最新版本的资源
缓存
程序员雄杰5 小时前
CentOS7安装Redis4.0.12
redis
小马爱打代码1 天前
Redis 为什么要引入 Pipeline机制?
redis
电子云与长程纠缠1 天前
UE5中制作地形材质
开发语言·缓存·ue5·编辑器·材质