?
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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

