当Redis中内存不足的时候,为了保证命中率,就会选择一定的数据淘汰策略。
volatile(从已经设置过期时间的key中)
allkeys(所有的key中)
1)volatile-lru:当内存不足时,从设置了过期时间的key中使用LRU(最近最少使用)算法,选出最近使用最少的数据,进行淘汰;
2)allkeys-lru:当内存不足时,从所有key中使用LRU(最近最少使用)算法,选出最近使用最少的数据,进行淘汰。
3)volatile-lfu:当内存不足时,从设置了过期时间的key中使用LFU算法,选出使频率最低的数据,进行淘汰。
【Redis内存淘汰策略】4)allkeys-lfu:当内存不足时,从所有key中使用LFU算法,从所有key中使用LFU算法,选出使频率最低的数据,进行淘汰。
5)volatile-random:当内存不足时,从设置了过期时间的key中,随机选出数据,进行淘汰。
6)allkeys-random:当内存不足时,从所有的key中,随机选出数据,进行淘汰。
7)volatile-ttl:当内存不足时,从设置了过期时间的key中,选出即将过期的数据(按照过期时间的先后,选出先过期的数据),进行淘汰。
8)no-enviction:当内存不足时,禁止淘汰数据,写入操作报错默认策略,是Redis默认的内存淘汰策略。
推荐阅读
- 数据库的日常操作|【Redis底层解析】整数集合
- 分布式|Spring Boot + Redis 实现分布式限流
- redis|基于 AOP + Redis + 自定义注解 实现细粒度的接口IP访问限制
- redis|小米面试题(讲一下Redis分布式锁)
- 微服务|猿创征文| NoSQL数据库简介
- Redis|Redis实现分布式锁
- redis|Redis做分布式锁,redission,rediscache,redis面试等.....
- 面试|秋招已至,抓紧备一波蚂蚁金服、字节跳动、阿里等大厂面试,冲刺金九银十!!
- Java|项目总结--3(@Cacheable的使用方法和使用技巧)