Redis内存淘汰回收策略

 

分类:服务器搭建数据库
标签:redis移除键值对LRU内存淘汰策略

2020-03-13 14:29:06.0 阅读原文

redis在存储KV值时,如果内存满了会怎么样?这取决与我们对于redis的 maxmemory-policy 的配置,具体配置如下:

maxmemory-policy volatile-lru

此项配置的值有如下

  • noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错。
  • allkeys-lru:在主键空间中,优先移除最近未使用的key。
  • volatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的key。
  • allkeys-random:在主键空间中,随机移除某个key。
  • volatile-random:在设置了过期时间的键空间中,随机移除某个key。
  • volatile-ttl:在设置了过期时间的键空间中,具有更早过期时间的key优先移除。

redis对于这个问题的解决方法分为两种,一种是提示错误,另一种就是移除已有的键值对。根据不同的配置,移除键值对时,可以在所有键值对范围内,也可以仅在设置了过期时间的键值对范围内;移除的策略,可以是随机移除,也可使用LRU(最近最少使用)策略移除;此外,对于设置了过期时间的键值对,可以从最早过期的开始移除。


分类:服务器搭建数据库
标签:redis移除键值对LRU内存淘汰策略

原文链接: Redis内存淘汰回收策略 2020-03-13 14:29:06.0