redis——django使用管道实现事务操作

 

redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作。

单机上可以使用管道来实现事务,但是集群使用redis就不支持,redis事务只能管住一台机器上的数据,只能控制程序来实现,可以捕获异常,数据出错进行回滚

# 管道,实现事务操作
# import redis
# pool = redis.ConnectionPool(host='10.211.55.4', port=6379)
# conn = redis.Redis(connection_pool=pool)
# # pipe = r.pipeline(transaction=False)
# # 拿到一个管道对象
# pipe = conn.pipeline(transaction=True)
# # 开启一次执行多条命令
# pipe.multi()
# pipe.set('name', 'lqz')
# pipe.set('role', 'teacher')
# # 直接执行上面所有命令
# pipe.execute()

 

posted @ 2018-12-26 20:15  粗糙的丸子  阅读(367)  评论(0编辑  收藏  举报