1. 程式人生 > >redis -- python操作連線redis

redis -- python操作連線redis

1.先安裝 redis,pyredis

sudo pip install redis  

sudo pip install python-redis

2.示例:

importredis >>>r=redis.Redis(host='localhost',port=6379,db=0) >>>r.set('guo','shuai') True >>>r.get('guo') 'shuai' >>>r['guo'] 'shuai' >>>r.keys() ['guo'] >>>
r.dbsize()#當前資料庫包含多少條資料       1L >>>r.delete('guo') 1 >>>r.save()#執行“檢查點”操作,將資料寫回磁碟。儲存時阻塞 True >>>r.get('guo'); >>>r.flushdb()#清空r中的所有資料 True

3.管道:

server和client之間是利用socket傳送tcp報文進行通訊的,利用pipeline的方式從client打包多條命令一起發出,不需要等待單條命令的響應返回,而redis服務端會處理完多條命令後會將多條命令的處理結果打包到一起返回給客戶端。這樣就能節省浪費在網路延遲上的時間, pipeline

方式打包命令傳送,redis必須在處理完所有命令前先快取起所有命令的處理結果。打包的命令越多,快取消耗記憶體也越多。所以並是不是打包的命令越多越好。

p=r.pipeline()--建立一個管道 >>>p.set('hello','redis') >>>p.sadd('faz','baz') >>>p.incr('num') >>>p.execute() [True,1,1] >>>r.get('hello')

管道的命令可以寫在一起,如:

1 >>>
p.set('hello','redis').sadd('faz','baz').incr('num').execute()
預設的情況下,管道里執行的命令可以保證執行的原子性,執行pipe = r.pipeline(transaction=False)可以禁用這一特性。
附:Sentinel是一個管理多個redis例項的工具,它可以實現對redis的監控、通知、自動故障轉移。