Redis六(管道)

管道

为何使用管道?

Redis是一个TCP服务器,支持请求/响应协议。 在Redis中,请求经过如下步骤完成:python

  • 客户端向服务器发送查询,并从套接字读取,一般以阻塞的方式,用于服务器响应。
  • 服务器处理命令并将响应发送回客户端。

Redis 管道技术能够在服务端未响应时,客户端能够继续向服务端发送请求,并最终一次性读取全部服务端的响应。 redis

redis-py 

  例如,redis-py默认在执行每次请求都会建立(链接池申请链接)和断开(归还链接池)一次链接操做,若是想要在一次请求中指定多个命令,则能够使用pipline实现一次请求指定多个命令,而且默认状况下一次pipline 是原子性操做。服务器

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
import redis
 
pool = redis.ConnectionPool(host='10.211.55.4', port=6379)
 
r = redis.Redis(connection_pool=pool)
 
# pipe = r.pipeline(transaction=False)
pipe = r.pipeline(transaction=True)
 
pipe.set('name', 'sb')
pipe.set('sex', 'male')
#前面两个操做都成功才execute(),不然回滚
pipe.execute()

ps:默认的状况下,管道里执行的命令能够保证执行的原子性,执行pipe = r.pipeline(transaction=False)能够禁用这一特性。spa

相关文章
相关标签/搜索