在 Redis.conf 中,介绍了各种关键的驱逐策略,以及它们如何工作的一些基础知识。
我相信我想使用volatile-ttl,但我找不到有关它如何工作的足够信息。
脸上,一清二楚;过期时间最近的密钥先行。如果 Redis 驱逐所有有过期时间的键怎么办?假设它仍然需要继续驱逐才能留在 之下,那么接下来它会选择什么驱逐maxmemory?
# 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
Run Code Online (Sandbox Code Playgroud)
该volatile-ttl策略将根据 TTL 按升序驱逐所有易失性密钥(即设置为过期的密钥)。当不再剩下易失性密钥时——即所有剩余的密钥都是非易失性的——并且假设 RAM 压力持续存在,则不会发生进一步的驱逐,并且 Redis 将回复 OOM(内存不足)错误。
| 归档时间: |
|
| 查看次数: |
7073 次 |
| 最近记录: |