1. 程式人生 > >34. Python Memcached 安裝 集群

34. Python Memcached 安裝 集群

python memcache

1.Memcache 安裝

安裝過程略,查詢官網有安裝方法。

官方網站下載地址: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 安裝 集群