redis的内存用完了会发生什么?
- 不进行数据淘汰的策略,只有 noeviction 这一种。
会进行淘汰的 7 种策略,我们可以再进一步根据淘汰候选数据集的范围把它们分成两类:
- 在设置了过期时间的数据中进行淘汰,包括 volatile-random、volatile-ttl、volatile-lru、volatile-lfu四种。
- 在所有数据范围内进行淘汰,包括 allkeys-lru、allkeys-random、allkeys-lfu三种。
策略 |
规则 |
volatile-ttl |
在筛选时,会针对设置了过期时间的键值对,根据过期时间的先后进行删除,越早过期的越先被删除。 |
volatile-random |
在设置了过期时间的键值对中,进行随机删除。 |
volatile-lru |
使用 LRU 算法筛选设置了过期时间的键值对 |
volatile-lfu |
使用 LFU 算法选择设置了过期时间的键值对 |
策略 |
规则 |
allkeys-random |
从所有键值对中随机选择并删除数据; |
allkeys-lru |
使用 LRU 算法在所有数据中进行筛选 |
allkeys-lfu |
使用 LFU 算法在所有数据中进行筛选 |