Python標準庫系列之Memcache模組

發表於2017-04-04

這個模組是一個Python操作memcached的一個API介面。

Memcached官網:http://memcached.org/
模組官網:https://pypi.python.org/pypi/python-memcached/

What is Memcached?

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

以上內容摘自官網的介紹,具體資訊訪問官網


安裝Memcached

包安裝

Ubuntu

CentOS

原始碼安裝

Memcached原始碼包安裝的時候需要依賴於libevent

編譯安裝memcached

具體引數見./configure --help全選項,SASL支援需要一些可選附加庫。

啟動

我這裡安裝的時候是採用包的方式進行安裝的。

引數說明

引數 描述
-d 是啟動一個守護程式
-m 是分配給Memcache使用的記憶體數量,單位是MB
-u 是執行Memcache的使用者
-l 是監聽的伺服器IP地址
-p 是設定Memcache監聽的埠,最好是1024以上的埠
-c 選項是最大執行的併發連線數,預設是1024,按照你伺服器的負載量來設定
-P 是設定儲存Memcache的pid檔案

設定開機自啟動

關閉memcached

測試

先檢視11211埠是否啟動

使用telnet檢視啟動的11211埠是否可以,可以則測試OK,否則就需要你拍錯了,但願沒有問題。

如果出現以下內容就代表啟動成功!

Memcache使用

安裝Memcache

下載模組包,目前最新版

解壓並安裝

進入Python直譯器匯入模組,如果匯入成功就表示模組安裝成功。

首次體驗

更多的使用方法

設定超時時間

設定值,如果存在就報錯

修改值,不存在則返回False

設定多個值,值不存在則建立,存在則修改

刪除一個值

刪除多個值

獲取一個值和獲取多個值

修改指定key的值,在該值後面追加內容

修改指定key的值,在該值 前面 插入內容

自增與自減,將Memcached中的某一個值加或減少N(N預設為1)

比如設定了這麼一個值:

現在A使用者和B使用者同時獲取到了這兩個值,如果有其中的任何一個使用者對這個值進行了修改,那麼另外一個使用者在對這個值進行操作的時候就會報錯。

如果要解決以上的問題可以使用getscas,測試程式碼如下:

Python標準庫系列之Memcache模組

多節點的操作

首先在伺服器上面起四個memcached例項,每個例項都是一個單獨的memcached服務

多節點資料儲存流程

  1. 先將一個字串轉換為一個數字
  2. 得出的結果和節點的數量進行除法運算
  3. 得出的結果肯定在節點數量之間,餘數是幾,就在那臺節點上面存放資料

如圖所示

Python標準庫系列之Memcache模組

基於Memcached的Session例項

主程式指令碼

模板檔案

設定Session的小模組

演示如下:

Python標準庫系列之Memcache模組

 

相關文章