Redis: bulk read for get_list

This commit is contained in:
Przemyslaw Kaminski 2015-06-12 09:02:14 +02:00
parent b3283ca024
commit 5a9aa8f847

View File

@ -51,8 +51,17 @@ class RedisDB(object):
def get_list(self, collection=COLLECTIONS.resource): def get_list(self, collection=COLLECTIONS.resource):
key_glob = self._make_key(collection, '*') key_glob = self._make_key(collection, '*')
for key in self._r.keys(key_glob): keys = self._r.keys(key_glob)
yield json.loads(self._r.get(key))
with self._r.pipeline() as pipe:
pipe.multi()
values = [self._r.get(key) for key in keys]
pipe.execute()
for value in values:
yield json.loads(value)
def clear(self): def clear(self):
self._r.flushdb() self._r.flushdb()