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过去被访问次数最少的一条数据
相关推荐
Chockmans几秒前
春秋云境CVE-2022-32991(手注和sqlmap)保姆级教学
数据库·安全·web安全·网络安全·oracle·春秋云境·cve-2022-32991
上海蓝色星球6 分钟前
从工具到资产:CER V2.0 造价机器人如何重构企业核心竞争力
java·数据库·mysql
i220818 Faiz Ul12 分钟前
高校教务|教务管理|基于springboot+vue的高校教务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·高校教务系统
SelectDB技术团队13 分钟前
强行拍平?全表扫描? AI Agent 动态 JSON 的观测分析
数据库·人工智能·json·apache doris
SL-staff13 分钟前
JVS低代码动态建表原理:从模型配置到数据库DDL的生成逻辑
数据库·低代码·二次开发·源码解析·jvs·动态建表·ddl生成
木子墨51613 分钟前
工程算法实战 | 从LRU到手写本地缓存:LinkedHashMap → 双向链表+哈希表 → Caffeine 原理
java·数据结构·算法·链表·缓存
van久16 分钟前
Day30:Redis 缓存策略 + 菜单实战缓存 + 三大缓存问题(穿透 / 击穿 / 雪崩)
数据库·redis·缓存
2501_9012005316 分钟前
Laravel 大批量数据填充时的内存泄漏与性能优化指南
jvm·数据库·python
ID_1800790547317 分钟前
除了JSON,淘宝店铺商品API接口还支持哪些数据格式?
android·数据库
newnazi19 分钟前
RedHart安装Oracle 12C
数据库·oracle