無條件鍵值對的設置,其中的time用於設置超時,單位是秒,而min_compress_len則用於設置zlib壓縮(注:zlib是提供數據壓縮用的函式庫)html
設置多個鍵值對,key_prefix是key的前綴,完整的鍵名是key_prefix+key, 使用方法以下python
>>> mc.set_multi({'k1' : 1, 'k2' : 2}, key_prefix='pfx_') == []linux
>>> mc.get_multi(['k1', 'k2', 'nonexist'], key_prefix='pfx_') == {'k1' : 1, 'k2' : 2}sql
添加一個鍵值對,內部調用_set()方法緩存
替換value,內部調用_set()方法app
根據key去獲取value,出錯返回Nonememcached
獲取多個key的值,返回的是字典。keys爲key的列表函數
刪除某個key。time的單位爲秒,用於確保在特定時間內的set和update操做會失敗。若是返回非0則表明成功性能
自增變量加上delta,默認加1,使用以下fetch
>>> mc.set("counter", "20")
>>> mc.incr("counter")
自減變量減去delta,默認減1
前提:已安裝Memcached
apt-get install python-memcached
import memcache mc = memcache.Client(['127.0.0.1:12000'],debug=False) mc.set("foo","bar") value = mc.get("foo") print(value) #輸出bar
# debug=True表示運行出現錯誤時,能夠顯示錯誤信息,正式環境能夠不加
import memcache mc = memcache.Client(['127.0.0.1:11211'], debug=0)
memcache其實就是一個map結構,最常使用的就是兩個函數了:
對一個sql查詢,若是要對結果作緩存,能夠這麼作:
sql = 'select count(*) from verycd' c = sqlite3.connect('verycd.db').cursor()
#原來的處理方式
c.execute(sql) count = c.fetchone()[0]
#如今的處理方式
from hashlib import md5 key=md5(sql) count = mc.get(key) if not count: c.execute(sql) count = c.fetchone()[0] mc.set(key,count,60*5) #存5分鐘
#md5是爲了讓key分佈更均勻。
refer: