2011-02-08 6 views
16

Więc już przeczytałem this post o tym, że nie jest to analogowy koder dla Redis'a. Jedna z odpowiedzi mówi, że używa się MULTI/EXEC, aby wykonać operację masowo, i to działa na listach i zwykłych kluczach, ale nie w przypadku skrótów, niestety. Teraz jednak wykonuję połączenie przez przewód dla każdego skrótu, który chcę odzyskać, co wydaje mi się złym wieścią.Najbardziej skuteczny sposób na uzyskanie kilku skrótów w Redis?

Więc moje pytanie brzmi: co to jest większość skuteczny sposób, aby uzyskać kilka skrótów z Redis, ze standardem wydajności jest najmniej liczby połączeń sieciowych? Używam Redis 2.0.4, programowanie za pomocą klienta Python. Dzięki!

Odpowiedz

31

Najbardziej efektywnym sposobem byłoby użycie potoku.

Zakładając, że chcemy wszystko dla danego klucza i znać wszystkie klucze już:

import redis 

r = redis.Redis(host='localhost', port=6379, db=0) 
p = r.pipeline() 
for key in keys: 
    p.hgetall(key) 

for h in p.execute(): 
    print h 

Więcej informacji na temat rurociągów można znaleźć tutaj: http://redis.io/topics/pipelining