?
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網頁優化小記
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
