Как перебрать словарь 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))
Другие вопросы по тегам