秦悦明的运维笔记

redis pipeline

redis 的pipeline效率还是超高的,比普通的12s左右。pipeline的只要2.5s左右。10w的set对比。
pipeline的原理是redis减少了和客户端之间的通信往返次数,一次性的执行了一批命令,提升了性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# coding: utf-8
import redis
# redis 的pipeline效率还是超高的,比普通的12s左右。pipeline的只要2.5s左右。10w的set对比。
r = redis.Redis(
host='127.0.0.1',
port=6379,
db=0)
for i in range(100000):
r.set(i,i)
pipe = r.pipeline(transaction=False)
for i in range(100000):
pipe.set(i,i)
pipe.execute()

transcation=False指明这个是非事物型的pipeline,事物性的流水线会在命令两头加上multi和exec命令,确保多线程情况下命令能得到原子执行。