[英]Python, redis: How do I set multiple key-value pairs at once
我有兩個列表 keys= [k0,k1, ....kn] vals= [v0,v1, ....vn]
我可以通過以下多個步驟在 redis 上設置這些鍵值: for i in range(0,len(keys)): redis_con.set(keys[i], vals[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()
對於Django人在這里登陸,如果你使用的是django-redis,你可以使用.set_many()
方法。
from django.core.cache import cache
my_dict = {'key1': 'val1', 'key2': 'val2', 'key3'}
cache.set_many(my_dict, timeout=60*60)
這將在緩存中創建 3 個鍵。 在內部它使用redis 管道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.