哪些最大内存策略与redis过期机制兼容?
是只有易挥发的吗?noeviction能阻止旧记录的死亡吗?
发布于 2015-05-14 15:17:08
从redis.conf看到这里
MAXMEMORY策略: Redis将如何选择到达maxmemory时删除的内容。您可以在以下五种行为中进行选择: 挥发性- LRU ->使用LRU算法删除具有过期集的密钥。 allkeys LRU ->根据LRU算法删除任何密钥。 volatile-random ->删除具有过期集的随机密钥 allkeys-random ->移除随机密钥,任意密钥 volatile-ttl ->使用最近的过期时间(较小的TTL)删除密钥 noeviction ->根本不过期,只需在写操作上返回错误 注意:如果使用上述任何策略,Redis将在没有合适的退出键时返回写操作的错误。 在编写这些命令的日期,这些命令是: set setnx setex追加,incr decr rpush lpush lpushx linsert lset rpoplpush sadd烧结存储sunion sunionstore sdiff sDiff存储zadd zincrby zunionstore zinterstore hsetnx hmset hincrby incrby decrby getset mset msetnx exec排序。 默认情况是: 最大内存策略noeviction
如果您将策略保持在默认的“noeviction”状态,或者如果您选择了任何volatile-*策略,而没有在数据库中实际使用可破坏的密钥,那么数据将无限期地保留在Redis中。但是,请记住,如果您不从Redis中删除数据并继续添加更多的数据,那么最终您将耗尽内存。
https://stackoverflow.com/questions/30239588
复制相似问题