python操作memcache
安裝
cd /usr/local/src
wget http://memcached.org/latest
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
./configure && make && make test && make install
啟動
memcached -d -m 10 -u root -l 127.0.0.1 -p 12000 -c 256 -P /export/servers/memcache/logs/memcache.pid
-p 指定端口號(默認11211)
-m 指定最大使用內存大小(默認64MB)
-t 線程數(默認4)
-l 連接的IP地址, 默認是本機
-d 以後臺守護進程的方式啟動
-c 最大同時連接數,默認是1024
-P 制定memecache的pid文件
-h 打印幫助信息
ps -ef檢查memcache是否啟動,檢查端口號
Python操作memcache集群
python-memcachd模塊原生支持集群操作,其原理是在內存維護一個主機列表,且集群中主機的權重值和主機在列表中重復出現的次數成正比。
主機 權重
1.1.1.1 1
1.1.1.2 2
1.1.1.3 1
那麽在內存中主機列表為:host_list=['1.1.1.1','1.1.1.2','1.1.1.2','1.1.1.3',]
例子:
mc = memcache.Client([('1.1.1.1:12000', 1), ('1.1.1.2:12000', 2), ('1.1.1.3:12000', 1)], debug=True)
mc.set('k1', 'v1')
如果用戶要在內存中創建一個鍵值對(如:k1 = “v1”),那麽要執行以下步驟:
根據算法將k1轉換成一個數字;
將數字和主機列表長度求余數,得到一個值N(0 <= N < 列表長度);
在主機列表中根據第2步得到的值為索引獲取主機,例如:host_list[N];
連接將第3步中獲取的主機,將k1 = 'v1'放置在該服務器的內存中。
上面例子我們通過調用memcache模塊來實現對memcached進行存取數據,debug=True表示運行中出現錯誤時,顯示錯誤信息,上線後移除該參數。
python操作memcache