34. Python Memcached 安裝 集群
安裝過程略,查詢官網有安裝方法。
官方網站下載地址:http://memcached.org/downloads
memcache簡介
Memcached是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。
它通過在內存中緩存數據和對象減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。
Memcached基於一個存儲鍵/值的hashmap。
其守護進程(daemon)是用C語言寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
安裝memecache
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
啟動memcache
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 打印幫助信息
檢查memcache是否啟動
ps aux |grep memcache
2.Memchache 集群處理
天生支持集群:
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',]
下面來看一個例子,python操作memcache集群
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表示運行中出現錯誤時,顯示錯誤信息,上線後移除該參數。
34. Python Memcached 安裝 集群