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

相關文章
相關標籤/搜索