gpt4 book ai didi

caching - 有没有其他方法可以在 Redis 中使用过期的 ttl 积极地逐出 key

转载 作者:可可西里 更新时间:2023-11-01 11:27:44 26 4
gpt4 key购买 nike

我的用例:我正在使用 Redis 来存储大量数据。在 1 秒内,我在 30 分钟内用 ttl 在 redis 中写了大约 24k 个 key ,我希望在 ttl 过期后删除这些 key 。当前 redis 驱逐 key 的实现是它在任务中工作,每个任务选择 20 个随 secret 钥并查看 key 是否已过期 ttl 然后删除这些 key 并且 redis 建议使用不超过 100 个这样的任务。因此,如果我选择 hz(任务数量为 100),那么 Redis 将能够以 max @ 2000 键/秒的速度清除 tke 键,这对我来说太少了,因为我的插入率非常高,最终导致内存不足异常吃饱了。

我的替代方案是:1/命中随机键,或者我们知道已经过期的键,这将在 Redis 中启动删除2/当达到 maxmemory 时设置逐出策略。当达到最大内存时,这将主动删除 redis 键。3/将 hz(频率)设置为更高的值。这将启动更多每秒清除过期 key 的任务。1/似乎不可行。对于 2/& 3/基于当前 30 分钟的缓存计时器,并给定插入率,我们可以使用最大内存 12*1024*1024最大内存样本 10maxmemory-policy volatile-ttl赫兹100

但是使用 2 意味着 redis 将始终执行键的删除然后插入,正如我假设在我的情况下内存将始终等于 12 GB

那么使用这种策略好吗,还是我们应该在 Redis 上编写自己的 key 回收服务?

最佳答案

您是否在使用 Azure Redis 缓存?如果是,你可以考虑使用集群。集群中最多可以有 10 个分片,这将帮助您分担所有不同编号的负载。用于不同操作的键。

关于caching - 有没有其他方法可以在 Redis 中使用过期的 ttl 积极地逐出 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44304675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com