当前位置: 首页 > article >正文

Redis缓存-数据淘汰策略

数据淘汰策略就是,当redis内存满的时候,此时在向redis添加新的key,那么redis会按照某一种规则将内存中的数据删掉,这种删除数据的规则成为内存的淘汰策略。

redis支持8中淘汰策略
1.noeviction,这种是redis默认的情况,淘汰任何数据,如果进行插入,就会报错。
2.volatile-ttl 对设置了TTL的key,比较剩余时间,时间越短越优先淘汰
3.allkeys-random  对全体key,随机淘汰
4.volatile-random 对设置了TTL的key,随机淘汰
5.allkeys-lru:对全体key,基于LRU算法进行淘汰。(下面会说LRU是什么意思)
6. volatile-lru 对设置TTL的key,基于LRU算法进行淘汰
7.allkeys-lfu  对全体key,基于LFU算法进行淘汰(LFU下面也会说)
8.volatile-lfu  对设置TTL的key,基于LFU算法进行淘汰。

下面就说一下LRU和LFU

LRU:最近使用最少,用当前时间减去最后一次访问时间,这个值越大,则淘汰优先级越高。
LFU:最少使用频率,就是点击的次数,会统计每个key的访问频率,值越小淘汰优先级越高。

一些业务场景使用建议
1.如果有明显的冷热区分,建议使用allkeys-lru,为什么使用lfu呢,如果某个数据仅仅是在某个时间段内访问量比较高,其他时间就很少,所以就不能用lfu。

2.业务中数据访问量差别不大,没有冷热分离,建议使用allkeys-random

3.如果业务中有置顶需求,可以使用volatile-lru,同时置顶数据不设置过期时间,这些数据就不会被删除,会淘汰其他过期时间的数据。

4.业务中有短时间高频访问的数据,可以使用allkeys-lfu或者volatile-lfu策略。

http://www.lryc.cn/news/2397985.html

相关文章:

  • 52. N 皇后 II【 力扣(LeetCode) 】
  • MySQL 8 完整安装指南(Ubuntu 22.04)
  • C++ 标准输入输出 -- <iostream>
  • 记一次sql按经纬度计算距离
  • 安卓jetpack compose学习笔记-UI基础学习
  • 线性回归用于分类
  • 解锁电商新势能:商城系统自动 SaaS 多开功能深度解析
  • 蓝桥杯_DS18B20温度传感器---新手入门级别超级详细解析
  • C++中锁与原子操作的区别及取舍策略
  • ESP32对接巴法云实现配网
  • 《深度剖析:基于Meta的GameFormer构建自博弈AI游戏代理》
  • C++语法系列之类型转换
  • Qwen3 技术报告解读一
  • 详解开漏输出和推挽输出
  • 【八股消消乐】索引失效与优化方法总结
  • 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——4. 配置服务器终端环境 zsh , oh my zsh, vim
  • 数据安全合规体系构建的“三道防线“
  • 【Spring底层分析】Spring AOP基本使用+万字底层源码阅读分析
  • Python数据分析及可视化中常用的6个库及函数(二)
  • 新德通科技:以创新驱动光通信一体化发展,赋能全球智能互联
  • Selenium的底层原理
  • PostgreSQL的扩展 auth_delay
  • [Java 基础]Java 是什么
  • Qt学习2
  • C++ 内存泄漏检测器设计
  • 在 Linux 上安装 Nmap 工具
  • 从零打造AI面试系统全栈开发
  • 破局与进阶:ueBIM 在国产 BIM 赛道的差距认知与创新实践
  • 分布式流处理与消息传递——向量时钟 (Vector Clocks) 算法详解
  • 20250603在荣品的PRO-RK3566开发板的Android13下的命令行查看RK3566的温度