我正在阅读一本关于Redis(Redis在行动中)和第59-60页的书。交易的示例用法如下:
def trans(conn):
pipeline = conn.pipeline()
pipeline.incr('trans:')
time.sleep(.1)
pipeline.incr('trans:',-1)
print pipeline.execute()[0]
def run_transaction(conn):
if 1:
for i in xrange(3):
threading.Thread(target=trans, args =(conn,)).start()
time.sleep(.5)
我期待这会产生:
0
0
0
但输出是:
1
1
1
有人可以解释为什么('trans:从未在其他任何地方使用')? 感谢
答案 0 :(得分:0)
'pipeline.execute()'的结果是一个包含2个元素的数组。第一个是'pipeline.incr('trans:')'的结果,第二个是'pipeline.incr('trans:', - 1)'的结果。在您的情况下输出是正确的。