天天看點

Redis學習---Redis操作之Python連接配接

Redis學習---Redis操作之Python連接配接

​PyCharm下的Redis連接配接​

Redis學習---Redis操作之Python連接配接

​​​

Redis學習---Redis操作之Python連接配接

​​

​連接配接方式:​

1. 操作模式

redis-py提供兩個類Redis和StrictRedis用于實作Redis的指令,StrictRedis用于實作大部分官方的指令,并使用官方的文法和指令,Redis是StrictRedis的子類,用于向後相容舊版本的redis-py

2. 連接配接池

redis-py使用connection pool來管理對一個redis server的所有連接配接,避免每次建立、釋放連接配接的開銷。預設,每個Redis執行個體都會維護一個自己的連接配接池。可以直接建立一個連接配接池,然後作為參數Redis,這樣就可以實作多個Redis執行個體共享一個連接配接池。

注: 一次連接配接下的多個操作: 管道操作[PipeLine]

Redis的優化操作:

    1. 連接配接池

    2.管道  【Redis是單線程操作,異步高效IO,IO多路複用,epoll】

Redis學習---Redis操作之Python連接配接
​​

 操作模式連接配接Redis

myRedis.py  [注意取名才不能用redis.py,否則會報錯]

import redis
r = redis.Redis(host='192.168.2.105', port=6379)
# r = redis.Redis(host='192.168.2.105', port=6379, password=123)  # 帶密碼認證的redis操作
r.set('hello2018', 'world2018')
print(r.get('hello2018'))      

結果顯示:

Redis學習---Redis操作之Python連接配接

​​

reids.Redis屬性列舉:

Redis學習---Redis操作之Python連接配接

​​

連接配接池連接配接Redis

連接配接池連接配接Redis

import redis
pool = redis.ConnectionPool(host='192.168.2.105', port=6379, password=123)
r = redis.Redis(connection_pool=pool)
r.set('name', 'ftl2200')
name = r.get('name')
print(name)      

Redis學習---Redis操作之Python連接配接

​​

管道[PipeLine]連接配接Redis

【更多參考】https://www.w3cschool.cn/jenkins/jenkins-e7bo28ol.html

管道更适合2個程式之間的資料共享...

redis-py預設在執行每次請求都會建立(連接配接池申請連接配接)和斷開(歸還連接配接池)一次連接配接操作,如果想要在一次請求中指定多個指令,則可以使用pipline實作一次請求指定多個指令,并且預設情況下一次pipline 是原子性操作。必須執行execute()函數後才執行該操作。

import redis

pool = redis.ConnectionPool(host='192.168.2.105', port=6379, password=123)
r = redis.Redis(connection_pool=pool)
# pipe = r.pipeline(transaction=False)
pipe = r.pipeline(transaction=True)  # 原子操作,類似事務,所有的執行成功則操作成功
pipe.get('name')
pipe.get('age')
pipe.execute()  # 從池中擷取并執行      

Redis的釋出和訂閱

Redis問題解決

​問題1; Py連接配接Redis失敗:​

問題想象:

Redis學習---Redis操作之Python連接配接

​​

問題定位:

0. 檢視本機IP以及遠端伺服器6379端口是否OK

Redis學習---Redis操作之Python連接配接

​​

1. 判斷IP是否ping通

Redis學習---Redis操作之Python連接配接

​​

2. 判斷是否是防護牆阻隔

Redis學習---Redis操作之Python連接配接

​​

3. 判斷6379端口是否打開

netstat -lntpu | grep 6379      

Redis學習---Redis操作之Python連接配接

​​

4. 修改Redis服務,增加IP通路

sudo vi /etc/redis/redis.conf
   # 預設隻有127.0.0.1可以通路Redis      

Redis學習---Redis操作之Python連接配接

​​

5. 重新開機服務

/etc/init.d/redis-server stop
   /etc/init.d/redis-server start      

Redis學習---Redis操作之Python連接配接

​​

6. 檢視服務

netstat -lntpu | grep 6379      

Redis學習---Redis操作之Python連接配接

​​

​問題2: 報錯Redis module 'redis' has no attribute 'Redis'​

問題現象:​

Redis學習---Redis操作之Python連接配接

​​

問題解決:

我們的檔案名redis.py跟官方定義的redis.py重名,預設就叫原則,是以找不到Redis屬性,更改檔案名稱為myRedis.py解決

​問題3: Redis的連接配接是不安全的,不需要密碼​

           Redis學習---Redis的免密操作

作者:​​小a玖拾柒​​​

-------------------------------------------

個性簽名: 所有的事情到最後都是好的,如果不好,那說明事情還沒有到最後~

繼續閱讀