道友!啥是Redis的过期策略呢?
【摘要】 仙元2020年,鸿蒙初开,天地间一片IT的盛况,在神秘东方古国的盛京城内发生了如下的一番对话..... 迷糊道人:道友,为什么我写入Redis的数据,过一段时间就消失了?左羊:道友,你问这个问题就说明,Redis你还没有没有参悟透啊!你说的这个问题有两情况会造成,一种是设置过期时间“set ket value 过期时间”。当然我相信道友不会犯这种错误的。那么就是下面这种情况了,首先你因该知道...
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select among five behaviors:
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key according to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys-random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
# Note: with any of the above policies, Redis will return an error on write
# operations, when there are no suitable keys for eviction.
# At the date of writing these commands are: 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 sort
默认配置是:noeviction
# The default is:
# maxmemory-policy noeviction
volatile-lru
翻译:使用LRU算法删除具有过期集的密钥
个人理解:内存满了写不下新数据的时候,在所有设置过期时间的key中,
删除使用最少的key。
allkeys-lru
翻译:根据LRU算法删除任何密钥
个人理解:内存满了写不下新数据的时候,在所有key中,删除使用最少的key。
volatile-random
翻译:删除带有过期设置的随机密钥
个人理解:内存满了写不下新数据的时候,在所有设置过期时间的key中,
随机删除某个key。
allkeys-random
翻译:删除一个随机密钥,任何密钥
个人理解:内存满了写不下新数据的时候,在所有key中,随机删除某个key。
volatile-ttl
翻译:删除具有最近过期时间的密钥
个人理解:内存满了写不下新数据的时候,在所有设置过期时间的key中,
删除过期时间靠前的key。
noeviction
翻译:完全不过期,只是在写操作时返回一个错误
个人理解:内存满了写不下新数据的时候,完全不删除任何key,
只是在添加新数据时返回一个错误(蛋疼操作,墙裂不推荐哈!)
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)