如何遍历redis字典

How to iterate over redis dictionary

我知道 Amazon ElastiCache 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'))

但是我需要遍历整个字典,我们该怎么做呢?

使用scan,或scan_iterdoc):

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))