Python-memcached的使用用法

 

Memcached API

  • set(key,val,time=0,min_compress_len=0)

無條件鍵值對的設置,其中的time用於設置超時,單位是秒,而min_compress_len則用於設置zlib壓縮(注:zlib是提供數據壓縮用的函式庫)html

  • set_multi(mapping,time=0,key_prefix='',min_compress_len=0)

設置多個鍵值對,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

  • add(key,val,time=0,min_compress_len=0)

添加一個鍵值對,內部調用_set()方法緩存

  • replace(key,val,time=0,min_compress_len=0)

替換value,內部調用_set()方法app

  • get(key)

根據key去獲取value,出錯返回Nonememcached

  • get_multi(keys,key_prefix='')

獲取多個key的值,返回的是字典。keys爲key的列表函數

  • delete(key,time=0)

刪除某個key。time的單位爲秒,用於確保在特定時間內的set和update操做會失敗。若是返回非0則表明成功性能

  • incr(key,delta=1)

自增變量加上delta,默認加1,使用以下fetch

>>> mc.set("counter", "20")  

>>> mc.incr("counter")

  • decr(key,delta=1)

自減變量減去delta,默認減1

 

 

Python操做Memcached

前提:已安裝Memcached

linux下安裝python-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表示運行出現錯誤時,能夠顯示錯誤信息,正式環境能夠不加

 

在python網頁應用中的示例

import memcache mc = memcache.Client(['127.0.0.1:11211'], debug=0)

memcache其實就是一個map結構,最常使用的就是兩個函數了:

  • 第一個就是set(key,value,timeout),這個很簡單就是把key映射到value,timeout指的是何時這個映射失效
  • 第二個就是get(key)函數,返回key所指向的value

對一個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:

python---Memcached

Python-memcached的基本使用

30分鐘3300%性能提高――python+memcached網頁優化小記

相關文章
相關標籤/搜索