Data structures 在redis中逐出hashmap中的键

Data structures 在redis中逐出hashmap中的键,data-structures,redis,Data Structures,Redis,我在Redis有一个巨大的hashmap,它一直在增长。每天大约50k,在随后的几天里,这个数字会随着相同的钥匙重复而减少。我想将这个hashmap限制为一百万个键值对。我想基于LRU来做这件事 我知道我可以使用Redis的排序集,将时间戳作为一个值,并删除不在范围内的条目,但我需要保留键值对结构,当我移动到排序集时,我将丢失键值结构,因为该值将是时间戳,我需要在键值中执行一些字符串操作以实现等效的哈希功能(不可行) 因此,我的要求是: 键值对结构 基于给定的键或键获取值 多键 用100万对线修

我在Redis有一个巨大的hashmap,它一直在增长。每天大约50k,在随后的几天里,这个数字会随着相同的钥匙重复而减少。我想将这个hashmap限制为一百万个键值对。我想基于LRU来做这件事

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

因此,我的要求是:

  • 键值对结构
  • 基于给定的键或键获取值 多键
  • 用100万对线修剪结构 lru政策

  • 我能用hash实现它吗?我也愿意接受其他建议?提前感谢

    为什么不同时使用
    散列
    排序集

    散列中保存数据

    hs设置关键字段值

    使用保存在
    散列中的数据
    ,可以实现“键值对结构”和“基于给定键或多个键获取值”

    使用
    排序集实施LRU

    ZADD键时间戳字段

    使用排序集
    ,您可以将时间戳保存为字段的分数。每次访问
    散列中的字段时,用当前时间戳更新该字段的分数


    如果
    排序集中的成员数大于一百万,则获取得分太小的字段(使用
    zcard
    zrange
    )。然后删除
    散列
    排序集
    中的这些字段

    为什么不同时使用
    散列
    排序集

    散列中保存数据

    hs设置关键字段值

    使用保存在
    散列中的数据
    ,可以实现“键值对结构”和“基于给定键或多个键获取值”

    使用
    排序集实施LRU

    ZADD键时间戳字段

    使用排序集
    ,您可以将时间戳保存为字段的分数。每次访问
    散列中的字段时,用当前时间戳更新该字段的分数


    如果
    排序集中的成员数大于一百万,则获取得分太小的字段(使用
    zcard
    zrange
    )。然后删除
    散列
    排序集
    中的这些字段。但对我来说,对所有操作执行两次操作似乎是一项开销。我会寻找更好的解决方案(如果有的话),这是我会选择的解决方案-我会的,但我认为有一个更好的。好的。但对我来说,对所有操作执行两次操作似乎是一项开销。我会寻找更好的解决方案(如果有的话),这是我会选择的解决方案,但我认为有更好的。