【问题标题】:Redis: How to increment hash key when adding data?Redis:添加数据时如何增加哈希键?
【发布时间】:2016-05-06 15:13:38
【问题描述】:

我正在遍历数据并将一些数据转储到 Redis 数据库。这是一个例子:

hmset id:1 用户名“bsmith1”部门“会计”

如何动态增加唯一 ID,然后在下一个 hmset 命令期间使用它?这似乎是一个显而易见的问题,但我找不到答案。

【问题讨论】:

    标签: redis increment


    【解决方案1】:

    使用另一个键,一个字符串,用于存储最后一个 ID。在调用HMSET 之前,在该键上调用INCR 以获取下一个ID。将这两个命令包装在 MULTI/EXEC 块或 Lua 脚本中,以确保事务的原子性。

    【讨论】:

      【解决方案2】:

      就像 Itamar 提到的,您可以将索引/计数器存储在单独的键中。在此示例中,我为该键选择了名称 index

      Python 3

      KEY_INDEX = 'index'
      r = redis.from_url(host)
      
      def store_user(user):
        r.incr(KEY_INDEX, 1)  # If key doesn't exist it will get created
        index = r.get(KEY_INDEX).decode('utf-8')  # Decode from byte to string
        int_index = int(index)  # Convert from string to int
        result = r.set('user::%d' % int_index, user)
        ...
      

      请注意,user::<index> 是我选择的任意键。你可以使用任何你想要的东西。

      如果您有多台机器写入同一个数据库,您可能希望使用pipelines

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-18
        • 1970-01-01
        相关资源
        最近更新 更多