gpt4 book ai didi

data-structures - 在redis中驱逐 HashMap 中的键

转载 作者:可可西里 更新时间:2023-11-01 11:05:08 25 4
gpt4 key购买 nike

我在 Redis 中有一个不断增长的巨大 hashmap。每天大约 50k,在接下来的几天里,这个数字会越来越少,因为相同的键会重复。我想将这个 hashmap 限制为 100 万个键值对。我想基于 LRU 来做这个。

我知道我可以使用 Redis 的排序集以时间戳作为值并删除不在范围内的条目来执行此操作,但我需要保留键值对结构,当我移动到排序集时我将丢失键值结构,因为值将是时间戳,我需要在键中执行一些字符串操作以实现等效的哈希功能(不可行)。

所以我的要求是:

  1. 键值对结构
  2. 根据给定键获取值或多个键
  3. 用 100 万对修剪结构lru 政策。

我可以用hash实现吗?我也愿意接受其他建议吗?提前致谢

最佳答案

为什么不同时使用 HASHSorted Set

Save data in HASH

HSET 键字段值

将你的数据保存在HASH中,你可以同时实现“键值对结构”“根据给定键或多个键获取值” .

Implement LRU with Sorted Set

ZADD 关键时间戳字段

使用Sorted Set,您可以将时间戳保存为字段的分数。每次访问 HASH 中的字段时,使用当前时间戳更新该字段的分数。

如果 Sorted Set 中的成员数大于一百万,则获取分数太小的字段(使用 zcardzrange ).然后删除 HASHSorted Set 中的这些字段。

关于data-structures - 在redis中驱逐 HashMap 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364322/

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