内存回收策略

删除过期键对象

  • 惰性删除 :当键对象被访问时,才检查是否过期,如果过期则删除。
  • 定时任务删除 :定时任务检查键对象是否过期,如果过期则删除。每秒10次

内存溢出控制策略

  • volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键值对中,使用LRU(Least Recently Used,最近最少使用)算法进行淘汰。
  • volatile-lfu:在设置了过期时间的键值对中,使用LFU(Least Frequently Used,最少使用)算法进行淘汰。LFU算法会追踪键值对的访问频率,并淘汰访问频率最低的键值对。
  • volatile-random:在设置了过期时间的键值对中,随机选择并淘汰一个键值对。
  • volatile-ttl:在设置了过期时间的键值对中,选择剩余生存时间(TTL)最短的键值对进行淘汰。 以上四种策略都只在设置了过期时间的键中进行淘汰。如果没有键可以淘汰,则会返回错误。

除了针对设置了过期时间的键的策略外,Redis还提供了以下两种策略,它们会在所有键中进行淘汰:

  • allkeys-lru:在所有键中,使用LRU算法进行淘汰。
  • allkeys-lfu:在所有键中,使用LFU算法进行淘汰。
  • allkeys-random:在所有键中,随机选择并淘汰一个键值对。 另外,Redis还提供了一个不淘汰的策略:
  • noeviction:当内存不足以容纳新写入数据时,新写入操作会报错,不会淘汰任何键值对

输入缓冲区

大小可以动态扩充,最大不能超过1GB

复制缓冲区

默认大小为1MB,由主服务器维护

results matching ""

    No results matching ""