大綱簡介 安裝前,先簡單介紹一下memcached。 memcached是一個免費、開源、高性能的分散式緩存。設計memcached的初衷是為了加快web應用程式,減少DB負載。 安裝要求:支持大多數linux和基於BSD的系統,官方沒有給出windows版本,但是網上有memcached for ...
大綱簡介
安裝前,先簡單介紹一下memcached。
memcached是一個免費、開源、高性能的分散式緩存。設計memcached的初衷是為了加快web應用程式,減少DB負載。
安裝要求:支持大多數linux和基於BSD的系統,官方沒有給出windows版本,但是網上有memcached for windows可以在windows上使用。
數據類型:僅僅支持string類型數據
特點:
簡單的key-value的鍵值對。
基於c/s架構,客戶端負責選擇要寫入的目標伺服器以及通過介面進行讀寫操作,伺服器則負責實際的寫入操作、記憶體管理等。
所謂分散式是用一致性hash演算法實現的,各節點相互獨立,沒有任何通信機制。
分配的記憶體不會被釋放掉,但是可以被重用,基於LRU演算法實現。
完全基於記憶體,沒有持久化機制。
效率:
官方給出的數值,在比較牛B的機器上,memcached的理論效率能達到200000次/s(沒有機器配置,僅供參考)
使用需要註意的內容:
不能隨意更改伺服器的時間,可能影響到緩存的失效時間
網路穩定
記憶體足夠,避免使用到Swap分區,否則會造成性能問題
連接數配置合理
增長因數配置合理,否則造成大量的記憶體浪費
OK,前戲足夠,下麵直奔主題~
安裝memcached
#memcached依賴libevent,所以先下載並安裝libevent。
#到官網下載:
#https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar -zxvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure --prefix=/usr/local/libevent-2.0.22-stable
make && make install
安裝memcached
安裝最新版本memcached
wget https://memcached.org/latest
tar -zxvf memcached-1.4.34.tar.gz
cd memcached-1.4.34.tar.gz
#--with-libevent:指定libevent的安裝目錄,--prefix:指定安裝的版本,相關命令cd到memcached/bin下,使用./configure --help查看
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent-2.0.22-stable/ --enable-64bit
make && make install
安裝期間可能遇到的問題:
沒有安裝gcc無法編譯 => yum -y install gcc
至此memcached安裝成功!
啟動、停止memcached
1.啟動
#cd到memcached的安裝目錄,執行啟動命令
cd /usr/local/memcached-1.4.34/bin ./memcached -u root -m 80 -c 1024 -p 11213 -n 70 -f 1.2 -d
memcached啟動參數說明:(更多參數請使用./memcached -help查看)
-u 進程用戶
-m 分配記憶體,註意實際分配記憶體要略微高於此值。當然,如果設置記憶體過低(低於64M),實際使用記憶體可能 >= 64M。
-c 連接數,預設是1024
-n 最小分配記憶體 key + value + flags,最小是48bytes
-f 增長因數,和memcached的記憶體分配有關
-d 以守護線程啟動
-v 提示信息(在事件迴圈中列印錯誤、警告信息)
-vv 詳細信息(可以列印客戶端命令、響應),以very vrebose模式啟動,調試信息和錯誤輸出到控制台
-vvv 超詳細信息(可以列印內部狀態的變化)
-p 指定埠號,一臺server上可以跑多個實例
-l 用於綁定特定的介面或IP地址,安全相關
-P 監聽TCP埠
-U 監聽UDP埠
-s 限制只能通過本地用戶訪問,配置此參數後TCP和UDP監聽都將失效
-L 嘗試使用大記憶體頁(如果可用的話)。提高記憶體頁尺寸可以減少"頁表緩衝(TLB)"丟失次數,提高運行效率
2.停止
#查詢memcached進程id,殺死進程
ps -ef|grep memcached kill -9 pid
操作示例: