Redis 内存回收策略

#设置同时连接的最大客户端数。默认
#此限制设置为10000个客户端,但是如果Redis服务器不是
#能够配置进程文件限制以允许指定的限制
#允许的最大客户端数量设置为当前文件限制
#减32(因为Redis保留了一些文件描述符供内部使用)。

#一旦达到限制,Redis将关闭所有新发送的连接
#错误“达到最大客户端数”。

#maxclients 10000

#不要使用超出指定字节数的内存。
#当达到内存限制时,Redis将尝试删除密钥
#根据选择的搬迁策略(请参阅maxmemory-policy)。

#如果Redis无法根据策略删除密钥,或者策略为
#设置为'noeviction',Redis将开始回复命令错误
#将使用更多的内存,例如SET,LPUSH等,并将继续
#回复诸如GET之类的只读命令。

#当将Redis用作LRU缓存或进行设置时,此选项通常很有用
#实例的硬内存限制(使用“ noeviction”策略)。

#警告:如果您将从属服务器连接到具有最大内存功能的实例,
#减去为从机提供所需的输出缓冲区的大小
#从已用的内存数量开始,以便网络问题/重新同步
#不触发退出键的循环,反过来输出
#奴隶的缓冲区已满,有被删除的密钥DEL触发了删除
#更多密钥,依此类推,直到数据库完全清空。

#简而言之...如果您连接了奴隶,建议您设置一个较低的
#maxmemory的限制,以便系统上有一些可用的RAM用于从属
#个输出缓冲区(但是,如果策略为“ noeviction”,则不需要这样做)。

#maxmemory <字节>

#MAXMEMORY POLICY:当maxmemory时,Redis如何选择要删除的内容
# 到达了。您可以选择以下五种行为:
volatile-lru -> 根据LRU算法删除设置了超时属性(expire)的键,直到腾出足够空间为止。如果没有可删除的键对象,回退到noeviction策略。
allkeys-lru -> 根据LRU算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为止。
volatile-lfu -> 根据LFU算法删除设置了超时属性(expire)的键,直到腾出足够空间为止。如果没有可删除的键对象,回退到noeviction策略。
allkeys-lfu -> 根据LFU算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为止。
volatile-random -> 随机删除过期键,直到腾出足够空间为止。
allkeys-random -> 随机删除所有键,直到腾出足够空间为止。
volatile-ttl -> 根据键值对象的ttl属性,删除最近将要过期数据。如果没有,回退到noeviction策略。
noeviction -> 不会删除任何数据,拒绝所有写入操作并返 回客户端错误信息,此 时Redis只响应读操作。
#注意:使用上述任何策略,Redis都会在写入时返回错误
#操作,如果没有合适的退出键。

#在撰写本文时,这些命令是:set setnx setex append
#incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
#sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
#zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
#getset mset msetnx exec排序

#默认为:

#maxmemory-policy noeviction

#LRU和最小TTL算法不是精确算法,而是近似值
#算法(以节省内存),因此您可以对其进行调整以提高速度或
# 准确性。默认情况下,Redis将检查五个键并选择一个
#使用较少,您可以使用以下方法更改样本大小
#配置指令。

#默认值5产生足够好的结果。 10非常接近
#真正的LRU,但要花费更多的CPU。 3非常快,但不是很准确。

#maxmemory-samples 5

你可能感兴趣的:(Redis 内存回收策略)