如何遍历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_iter
(doc):
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))
我知道 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_iter
(doc):
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))