Memcached官網(wǎng) http://memcached.org 簡(jiǎn)單介紹 Memcached很強(qiáng)大,它可以支持分布式的共享內(nèi)存緩存,大型站點(diǎn)都用它。對(duì)小站點(diǎn)來(lái)說(shuō),有足夠內(nèi)存的話,使用它也可以得到超贊的效果。 使用目的 由前面的介紹看到,大家使用它都是為了速度,不過(guò)我卻是為了解決Se
Memcached官網(wǎng) http://memcached.org
Memcached很強(qiáng)大,它可以支持分布式的共享內(nèi)存緩存,大型站點(diǎn)都用它。對(duì)小站點(diǎn)來(lái)說(shuō),有足夠內(nèi)存的話,使用它也可以得到超贊的效果。
由前面的介紹看到,大家使用它都是為了速度,不過(guò)我卻是為了解決Session在不同瀏覽器中偶爾丟失的數(shù)據(jù)。其實(shí)也不能怪瀏覽器啦,主要是我需要一個(gè)dict類型的session。
安裝
# Debian/Ubuntu sudo apt-get install memcached # Redhat/Fedora/CentOS sudo yum install memcached
啟動(dòng)Memcached
-d 選項(xiàng)是啟動(dòng)一個(gè)守護(hù)進(jìn)程 -m 是分配給Memcache使用的內(nèi)存數(shù)量,單位是MB,默認(rèn)64MB -M return error on memory exhausted (rather than removing items) -u 是運(yùn)行Memcache的用戶,如果當(dāng)前為root 的話,需要使用此參數(shù)指定用戶 -l 是監(jiān)聽的服務(wù)器IP地址,默認(rèn)為所有網(wǎng)卡 -p 是設(shè)置Memcache的TCP監(jiān)聽的端口,最好是1024以上的端口 -c 選項(xiàng)是最大運(yùn)行的并發(fā)連接數(shù),默認(rèn)是1024 -P 是設(shè)置保存Memcache的pid文件 -f chunk size growth factor (default: 1.25) -I Override the size of each slab page. Adjusts max item size(1.4.2版本新增)
例子
/usr/local/memcached/bin/memcached -d -m 100 -c 1000 -u root -p 11211
可以啟動(dòng)多個(gè)守護(hù)進(jìn)程,但是端口不能重復(fù)。 設(shè)置開機(jī)啟動(dòng)的話可以將上行命令增加到/etc/rc.d/rc.local文件中。
memcached API地址 http://code.google.com/p/memcached/wiki/Clients
網(wǎng)上流傳說(shuō)Python-API中效率最高的是python-libmemcached,這里居然看到了hongqn(豆瓣首席架構(gòu)師,后來(lái)也得到證實(shí)python-libmemcached是豆瓣貢獻(xiàn),看來(lái)豆瓣的陽(yáng)光真的是撒滿了Python的各個(gè)角落)。
另外還有python-memcached(100%純Python),python-memcache(據(jù)說(shuō)有內(nèi)存泄漏問(wèn)題?),cmemcache(代碼多年未更新?)。
不過(guò)由于目前需要中效率并沒(méi)有太高要求,于是選擇了使用最多的python-memcached: 安裝 python-memcached
sudo easy_install python-memcached
Python操作memcached
import memcache mc = memcache.Client(['127.0.0.1:11211'],debug=True) mc.set('name','luo',60) print mc.get('name') mc.delete('name')
memcache其實(shí)是一個(gè)map結(jié)構(gòu),最常用的幾個(gè)函數(shù):
保存數(shù)據(jù)
set(key,value,timeout) 把key映射到value,timeout指的是什么時(shí)候這個(gè)映射失效 add(key,value,timeout) 僅當(dāng)存儲(chǔ)空間中不存在鍵相同的數(shù)據(jù)時(shí)才保存 replace(key,value,timeout) 僅當(dāng)存儲(chǔ)空間中存在鍵相同的數(shù)據(jù)時(shí)才保存
獲取數(shù)據(jù)
get(key) 返回key所指向的value get_multi(key1,key2,key3,key4) 可以非同步地同時(shí)取得多個(gè)鍵值, 比循環(huán)調(diào)用get快數(shù)十倍
刪除數(shù)據(jù)
delete(key, timeout) 刪除鍵為key的數(shù)據(jù),timeout為時(shí)間值,禁止在timeout時(shí)間內(nèi)名為key的鍵保存新數(shù)據(jù)(set函數(shù)無(wú)效)。
原文地址:Memcached 安裝/使用(Python操作), 感謝原作者分享。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com