Redis: 是一個高性能的key-value數據庫。
簡單來說就是:當你使用關系型數據庫、文件或者其他介質存東西,性能不好反應慢,這個時候就要拿個東西做緩存。同類產品有好幾種,目前比較流行,在我司進行商用的就是這個。目前,這玩意在集群狀態下,為我們的百萬級並發提供良好的支持。
今天,我們就來簡單聊聊,如何用python操作redis。
牛小妹,把這個放進你的畢業設計,又能錦上添花哦。
redis的安裝,參考文章
1.python 連接redis
普通連接
import redis
#后面是地址 端口
r = redis.Redis(host='127.0.0.1', port=6379)
2.連接池
redis-py使用connection pool來管理對一個redis server的所有連接,避免每次建立、釋放連接的開銷
import redis
pool = redis.ConnectionPool(host='192.168.0.110', port=6379)
r = redis.Redis(connection_pool=pool)
3.管道
redis-py,默認情況下,每次都會進行連接池的連接和斷開。若是想一次執行多條命令,進行事務性操作,就要用管道。
import redis
pool = redis.ConnectionPool(host='192.168.0.110', port=6379)
r = redis.Redis(connection_pool=pool)
pipe = r.pipeline(transaction=True)
r.set('zcx', '5555')
r.set('zcx', '6666')
pipe.execute()
說明:雖然提供了這么一個功能。但實際情況還是不建議使用。因為這個執行起來慢。另一方面,也沒必要
4.發布訂閱
在我們學習操作系統這本書的時候,里面有個生產者和消費者。在這里,我試着用redis來模擬
定義公共的類,包裝方法和初始化連接
import redis
class redis_util(object):
def __init__(self):
self.__conn = redis.Redis(host='127.0.0.1', port=6379)
self.channel = 'mybaby' # 定義通道名稱
def publish(self, msg): # 定義發布的方法
self.__conn.publish(self.channel, msg)
return True
def subscribe(self): # 定義訂閱的方法
pub = self.__conn.pubsub()
pub.subscribe(self.channel)
pub.parse_response()
return pub
publisher發布者:
from polls.redis_utils import redis_util
obj = redis_util()
obj.publish('test')
subscriber訂閱者:
from polls.redis_utils import redis_util
obj = redis_util()
redis_sub = obj.subscribe()
while True:
msg = redis_sub.parse_response()
print(msg)
至於發布訂閱。只是表達有這么一個功能。但是,不建議用。后面,我將和大家一起,更深入的討論這方面的問題。
好啦,今晚就玩到這,要去陪我家小baby啦