Redis数据过期、淘汰策略

数据过期策略:

惰性删除:

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

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

定期删除:

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

定期删除有两种方式:

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

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

数据淘汰策略:

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

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

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

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

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

相关推荐
Jul1en_几秒前
【Redis】Sentinel 哨兵支持,附带 Docker 部署教程
redis·docker·sentinel
tongluowan0074 分钟前
怎么保证缓存和数据库的一致性
java·数据库·缓存·一致性
恣艺12 分钟前
用Go从零实现一个高性能KV存储引擎:B+Tree索引、WAL持久化、LRU缓存的工程实践
开发语言·数据库·redis·缓存·golang
秋910 小时前
windows中安装redis
数据库·redis·缓存
oddsand113 小时前
Redis网络模型
java·数据库·redis
皮卡祺q13 小时前
【redies0-导论】分布式系统的演进-引进redis原因
java·数据库·redis
UrSpecial13 小时前
Redis与多线程
数据库·redis·缓存
会编程的土豆14 小时前
Redis Sorted Set(有序集合)详解
数据库·redis·bootstrap
万邦科技Lafite16 小时前
实战演练:利用京东API一键抓取商品详情
数据库·redis·python·缓存·开放api·淘宝开放平台
go不是csgo16 小时前
两个Redis数据结构搞定签到和UV统计:Bitmap与HyperLogLog实战
数据结构·redis·uv