Как перебрать словарь Redis
Я знаю Amazon ElasticCache Redis
поддерживает данные в паре ключ-значение, то есть в форме dictionary
, Мы можем установить пару ключ-значение и получить данные следующим образом
from rediscluster import StrictRedisCluster
startup_nodes = [{'host': '<host>', 'port': '<port>'}]
rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)
rc.set('foo', 'bar')
print(rc.get('foo'))
Но мне нужно перебрать весь словарь, как мы можем это сделать.
1 ответ
Решение
Использование scan
, или же scan_iter
( док):
def test_scan(self, r):
r.set('a', 1)
r.set('b', 2)
r.set('c', 3)
cursor, keys = r.scan()
assert cursor == 0
assert set(keys) == set([b('a'), b('b'), b('c')])
_, keys = r.scan(match='a')
assert set(keys) == set([b('a')])
def test_scan_iter(self, r):
r.set('a', 1)
r.set('b', 2)
r.set('c', 3)
for key in r.scan_iter():
print(key)
print(r.get(key))