Redis 过期删除策略 And 内存淘汰策略 !!!

一、Redis过期删除策略(什么时候删除)

1、惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话就删除该键,如果没有过期就返回该键。

2、定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,一级哟啊检查多少个数据库,则有算法决定。

二、内存淘汰策略(删除什么)

Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

Redis 提供 8 种数据淘汰策略:

LRU全称Least recently used,意思为淘汰掉最久未使用(即最老)的一条数据;

LFU全称Least-frequently used,意思为淘汰掉过去被访问次数最少的一条数据

淘汰策略名称 策略含义 人话
noeviction 默认策略,不淘汰数据;大部分写命令都将返回错误 不删除任意数据 (但redis还会根据引用计数器进行释放),这时如果内存不够时,会直接返回错误。
volatile-lru 从设置了过期时间的数据 中根据LRU 算法挑选数据淘汰(只针对设置过期的keys) 从设置了过期时间的数据 集中,选择最近最久未使用的数据释放 ,最老的删掉
allkeys-lru这个是最常用的 从所有数据 中根据 LRU 算法挑选数据淘汰(所有keys) 从所有相数据 中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用 的数据释放 最老的删掉
allkeys-random 从所有数据 中随机挑选数据淘汰 随机选择一个数据进行释放;
volatile-random 从设置了过期时间 的数据中随机挑选数据淘汰 从设置了过期时间的数据 集中,随机
volatile-ttl 从设置了过期时间 的数据中,挑选越早过期的数据进行删除 从设置了过期时间的数据 集中,选择马上 就要过期的数据进行释放操作
allkeys-lfu 从所有数据 中根据 LFU 算法挑选数据淘汰(4.0及以上版本可用) 淘汰掉所有数据 过去被访问次数最少的一条数据
volatile-lfu 从设置了过期时间的数据 中根据 LFU 算法挑选数据淘汰(4.0及以上版本可用) 淘汰掉设置了过期时间的 key过去被访问次数最少的一条数据
相关推荐
姜鱼问生7 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
IvorySQL8 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔8 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用8 小时前
Spring对IoC的实现
数据库·spring
禾小西10 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
hz5678910 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC11 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday11 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码11 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
小米里的大麦11 小时前
16 MySQL 事务
数据库·mysql