Redis提供了管道可以一次下發多條命令,並一次性返回多個結果,大大提高了運行效率。
使用管道:
import redis
import time
r = redis.Redis(password='xiemanrui')
s = time.time()
p = r.pipeline()
for i in range(10000):
p.set('foo', 'bar%s' % i)
p.execute()
print(time.time() - s)
運行時間爲:1.2358031272888184秒
不使用管道:
import redis
import time
r = redis.Redis(password='xiemanrui')
s = time.time()
for i in range(10000):
r.set('foo', 'bar%s' % i)
print(time.time() - s)
運行時間爲: 2.5380067825317383秒
由此可見,使用管道執行多條命令大大提高了效率。
管道也支持鏈式調用:
import redis
import time
r = redis.Redis(password='xiemanrui')
s = time.time()
p = r.pipeline()
result = p.set('foo', 'bar').ping().get('foo').execute()
print(result)
運行結果爲:
[True, True, b'bar']