Redis数据过期、淘汰策略

数据过期策略:

惰性删除:

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

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

定期删除:

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

定期删除有两种方式:

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

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

数据淘汰策略:

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

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

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

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

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

相关推荐
dddaidai1238 小时前
分布式ID和分布式锁
redis·分布式·mysql·zookeeper·etcd
爱刘温柔的小猪12 小时前
Redis+Caffeine构造多级缓存
redis·spring·缓存
hello1114-12 小时前
Redis学习打卡-Day2-缓存更新策略、主动更新策略、缓存穿透、缓存雪崩、缓存击穿
java·redis·学习·缓存·javaweb
{⌐■_■}15 小时前
【redis】redis常见数据结构及其底层,redis单线程读写效率高于多线程的理解,
数据结构·数据库·redis
码农飞哥18 小时前
互联网大厂Java求职面试实战:Spring Boot到微服务的技术问答解析
java·spring boot·缓存·面试·消息队列·技术栈·microservices
HumoChen9919 小时前
jedis+redis pipeline诡异的链接损坏、数据读取异常问题解决
redis·pipeline·jedis
CircleMouse20 小时前
springboot如何通过提供的注解方式来操作Redis
java·spring boot·redis·spring·mybatis
dddaidai12321 小时前
Redis数据结构
数据结构·redis·hash table
文静小土豆21 小时前
K8S redis 部署
redis·kubernetes·bootstrap
贵沫末1 天前
docker-compose——安装redis
redis·docker·eureka