Python、redis:如何一次设置多个键值对

Python、redis:如何一次设置多个键值对,python,redis,set,pipeline,Python,Redis,Set,Pipeline,我有两张单子 键=[k0,k1,….kn] VAL=[v0,v1,….vn] 我可以通过以下步骤在redis上设置这些键值: 对于范围内的i(0,len(键)): redis_con.set(键[i],值[i]) 但这是多集操作。 如何在一个异步步骤中完成此操作?您也可以使用如下自定义方法: keys= ["k0","k1"] vals= ["v0","v1"] # use zip or izip based on py res = set(zip(keys, vals)) print

我有两张单子 键=[k0,k1,….kn] VAL=[v0,v1,….vn]

我可以通过以下步骤在redis上设置这些键值:

对于范围内的i(0,len(键)):
redis_con.set(键[i],值[i])
但这是多集操作。
如何在一个异步步骤中完成此操作?

您也可以使用如下自定义方法:

keys= ["k0","k1"] 
vals= ["v0","v1"]
# use zip or izip based on py 
res = set(zip(keys, vals))
print res
>>> set([('k0', 'v0'), ('k1', 'v1')])
a = [["b", "k", "a"], ["c", "m", "a"], ["a", "j","c"]]
b = [["k","a", "l"], ["l", "f", "c"], ["c", "d", "b"]]

def get_sets(*args):
    final = []
    for v in args:
        for j in v:
            final.append(set(j))
        yield final
        final = []

print(list(get_sets(a,b))) 
输出:

[
  [
   {'b', 'k', 'a'}, {'c', 'a', 'm'}, {'c', 'j', 'a'}
  ],
  [
   {'l', 'k', 'a'}, {'c', 'f', 'l'}, {'c', 'd', 'b'}
  ]
]

假设您需要一个针对set ops的redis调用:

pipe = redis_con.pipeline()
for i in range(0,len(keys)):
  pipe.set(keys[i], vals[i])
pipe.execute()

我想您需要这样:
{key:value for key,value in zip(key,vals)}
。问题不是获取新的数据帧。它是关于在一个步骤中设置多个键和值,而不是一次执行for循环来设置一个键-值对。如果您要求在单个redis调用中执行此操作,请使用redis Pipeline2。这不是自版本2.6以来就被弃用了吗?