redis在系统内存不足时会如何处理?

redis默认设置了最大内存
如果超过最大内存,她会有个删除的机制

但是如果是系统本身发生内存不足
会导致redis删除一些数据嘛

阅读 7.4k
1 个回答
Redis 提供了多种缓存淘汰策略,含义在注释中说的很清楚。
LRU:表示最近最少使用; LFU:表示最不常用的。

区别在于:LFU 是一定时间内访问最少的,比如 10 分钟内访问最少的,而 LRU 则是指服务启动后,访问量最少的内容。 下面按顺序说明下淘汰策略:

volatile-lru 筛选出设置了有效期的,最近最少使用的 key;
allkeys-lru 所有 key 中,筛选出最近最少使用的 key;
volatile-lfu 筛选出设置了有效期的,最不常用的 key;
allkeys-lfu 所有 key 中,筛选出最不常用的 key ;
valatile-random 随机筛选出设置了有效期的 key;
allkeys-random 所有 key 中,随机筛选出 key进行删除;
volatile-ttl 筛选出所有设置有效期的 key 中,有效期最短的 key;
noeviction 拒绝策略,当内存满了之后,服务不做任何处理,直接返回一个错误 Redis 默认是拒绝策略,可根据实际情况做出设置。(默认)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进