Redis:添加数据时如何增加哈希键?

时间:2016-05-06 15:13:39

标签: redis increment

我迭代数据并将一些数据转储到Redis数据库。这是一个例子:

hmset id:1个用户名" bsmith1"部门"会计"

如何动态增加唯一ID,然后在下一个hmset命令中使用它?这似乎是一个明显的问题但我无法找到答案。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

像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