我迭代数据并将一些数据转储到Redis数据库。这是一个例子:
hmset id:1个用户名" bsmith1"部门"会计"
如何动态增加唯一ID,然后在下一个hmset命令中使用它?这似乎是一个明显的问题但我无法找到答案。
答案 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
。