天天看點

使用 python 操作 redis

1.安裝pyredis

(1)使用 # easy_install redis

(2)直接編譯安裝

  #wget https://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz

  #tar xvzf redis-2.9.1.tar.gz

  #cd redis-2.9.1

  #python setup.py install

2.簡單的redis操作

  redis連接配接執行個體是線程安全的,可以直接将redis連接配接執行個體設定為一個全局變量,直接使用。如果需要另一個Redis執行個體(or Redis資料庫)時,就需要重新建立redis連接配接執行個體來擷取一個新的連接配接。同理,python的redis沒有實作select指令。

  

使用 python 操作 redis

3.應用場景 - 頁面點選數

  《Redis Cookbook》對這個經典場景進行較長的描述。假定我們對一系列頁面需要記錄點選次數。例如論壇的每個文章都要記錄點選次數,而點選次數比回帖的次數的多得多。如果使用關系資料庫來存儲點選,可能存在大量的行級鎖争用。是以,點選數的增加使用redis的INCR指令最好不過了。

  當redis伺服器啟動時,可以從關系資料庫讀入點選數的初始值(1237這個頁面被通路了34634次)

使用 python 操作 redis

  每當有一個頁面點選,則使用INCR增加點選數即可。

使用 python 操作 redis

  頁面載入的時候則可直接擷取這個值

使用 python 操作 redis

 4.使用hash類型儲存多樣化對象

  當有大量類型文檔的對象,文檔的内容都不一樣時,(即“表”沒有固定的列),可以使用hash來表達。

使用 python 操作 redis

5.應用場景 - 社交圈子資料

  在社交網站中,每一個圈子(circle)都有自己的使用者群。通過圈子可以找到有共同特征(比如某一體育活動、遊戲、電影等愛好者)的人。當一個使用者加入一個或幾個圈子後,系統可以向這個使用者推薦圈子中的人。

  我們定義這樣兩個圈子,并加入一些圈子成員。

使用 python 操作 redis

  獲得某一圈子的成員

使用 python 操作 redis

  可以使用集合運算來得到幾個圈子的共同成員

使用 python 操作 redis

6.應用場景 - 實時使用者統計

  當我們需要在頁面上顯示目前的線上使用者時,就可以使用Redis來完成了。首先獲得目前時間(以Unix timestamps方式)除以60,可以基于這個值建立一個key。然後添加使用者到這個集合中。當超過你設定的最大的逾時時間,則将這個集合設為過期;而當需要查詢目前線上使用者的時候,則将最後N分鐘的集合交集在一起即可。由于redis連接配接對象是線程安全的,是以可以直接使用一個全局變量來表示。(Counting Online Users with Redis)

使用 python 操作 redis