Python-memcached的使用用法


 

Memcached API

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

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

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

設置多個鍵值對,key_prefix是key的前綴,完整的鍵名是key_prefix+key, 使用方法如下

  >>> mc.set_multi({'k1' : 1, 'k2' : 2}, key_prefix='pfx_') == []

  >>> mc.get_multi(['k1', 'k2', 'nonexist'], key_prefix='pfx_') == {'k1' : 1, 'k2' : 2}

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

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

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

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

  • get(key)

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

  • get_multi(keys,key_prefix='')

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

  • delete(key,time=0)

刪除某個key。time的單位為秒,用於確保在特定時間內的set和update操作會失敗。如果返回非0則代表成功

  • incr(key,delta=1)

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

>>> 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網頁優化小記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM