【问题标题】:copy (backup) a redis key to another key将 redis 密钥复制(备份)到另一个密钥
【发布时间】:2017-09-16 01:41:37
【问题描述】:

我正在寻找一种有效的方法将一个 redis 键(zrange 类型)的内容复制到另一个 redis 键(用于备份以前的分数);

例如键my_score: ` “一”:100, 'b':200, “c”:300

我正在寻找的操作类型类似于 prev_score = my_score

以上redis数据在一定时间间隔后会发生一些变化(通过一些其他代码),需要重新评估这些变化。这次会说新值

'a': 150, 'b': 250, 'c': 300

现在我需要比较自上次检查以来的变化,以便比较每个索引中的变化类型。

请不要流连忘返:

  1. 这个操作在同一个数据库中(不是从一个redis实例到另一个redis实例)
  2. 我有特殊的理由使用 zrange 而不是其他无法更改的 redis 数据类型
  3. 我可以通过对每个索引使用 zadd 来实现这一点,但我正在寻找一个单一的 redis 命令或更高效的命令。

【问题讨论】:

    标签: redis copy


    【解决方案1】:

    简短回答 - ZUNIONSTORE prev_score 1 my_score

    详情在here

    【讨论】:

      【解决方案2】:

      您可以使用DUMPRESTORE

      str = DUMP myscore
      RESTORE another_key 0 str 
      

      如果您的密钥有过期时间,您可以先使用PTTL key 以毫秒为单位获取过期时间,然后使用RESTORE another_key expire_time str

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        相关资源
        最近更新 更多