【问题标题】:redis: delete oldest keys when memory limitedredis:内存有限时删除最旧的键
【发布时间】:2019-02-26 15:43:26
【问题描述】:

如果我有足够的内存,我想无限期地保留在 redis 中的密钥。但是,如果 redis 内存不足,那么我希望它首先删除最旧的键。我查看了“驱逐政策”选项,似乎 redis 不支持这个开箱即用。 https://support.redislabs.com/hc/en-us/articles/203290657-What-eviction-policies-do-you-support-

我如何使用作为 redis-client api 的一部分提供的命令自己实现这一点?

这里有一些伪代码可能会满足我的需要:

1.  Get the first N keys from a list sorted by key date asc.
2.  Delete the oldest keys.
3.  Repeat until memory is no longer constrained.

【问题讨论】:

标签: redis


【解决方案1】:

驱逐策略确定当数据库达到其内存限制时会发生什么。为了为新数据腾出空间,旧数据将根据所选策略被逐出(删除)。

您可以根据自己的要求从下面的参考链接中选择政策。我在下面的示例中使用的是“allkeys-lru”

reference link

例子-

127.0.0.1:6379> CONFIG SET maxmemory-policy allkeys-lru
    
OK

Python 示例 -

import redis
client = redis.Redis(host='localhost', port=6379, db=0)
client.config_set('maxmemory-policy', "allkeys-lru")

【讨论】:

    猜你喜欢
    • 2012-07-26
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多