鳴謝:菜鳥教程
memcached 是一套高效能的、分布式記憶體物件快取系統。
注意,memcache不是資料庫。
1.1 特點
a.協議簡單
使用文字協議和二進位制協議,協議簡單,效能高效.
b.基於 libevent 的事件處理
libevent 是個程式庫,它將 linux 的 epoll、bsd 類作業系統的 kqueue 等事件處理功能封裝成統一的介面。即使對伺服器的連線數增加,也能發揮 o(1)的效能。memcached 使用這個 libevent 庫,因此能在 linux、bsd、solaris 等作業系統上發揮其高效能。
c.內建記憶體儲存方式
memcached並不是資料庫,資料儲存在memcache內建的記憶體儲存空間中,由於資料儲存在記憶體中,當重啟memcache或者作業系統時,資料會被清空。
當內容容量達到指定值(啟動時可通過-m 引數配置)之後,就基於 lru(least recently used,顧名思義:最近最少使用)演算法自動刪除不使用的快取,不用擔心,這個功能是可以配置的,memcached 啟動時通過「-m」引數可以禁止 lru。不過,memcached 本身是為快取而設計的,建議開啟 lru。
1.2 不適應場景
a. 快取物件的大小大於 1 mb, memcached 本身就不是為了處理龐大的多**和巨大的二進位制塊而設計的,如果你任性,要存這麼大的資料,可以自己修改源**,它是開源的,不過請慎改;
b. key 的長度大於 250 字元(硬性要求);
c. 環境不允許執行 memcached 服務,如虛擬主機;
d. 應用執行在不安全的環境中,memcached 未提供任何安全策略,僅僅通過 telnet 就可以訪問到 memcached。資料安全越來越重要了,so,請把它放在防火牆後;
e. 業務需要的是持久化資料時請使用資料庫。
2.1 自動安裝
根據linux的類別不同,安裝memcache的方式也不同,下表為不同類別的linux自動安裝 memcache的命令(libevent 和 memcached 一起被安裝,無需另行安裝 libevent。)
命令支援系統
sudo apt-get install memcached
ubuntu/debian
yum install memcached
redhat/fedora/centos
portmaster databases/memcached
freebsd
安裝成功後,可以通過下邊的命令確認
命令功能
find / -name 'libevent*' | grep libevent
確認libevent
find / -name 'memcached*' | grep memcached
確認memcache
2.2 原始碼安裝
步驟命令操作1
wget
2
tar -zxvf memcached-1.x.x.tar.gz
解壓原始碼
3cd memcached-1.x.x
進入目錄
4./configure --prefix=/usr/local/memcached
配置
5make && make test
編譯
6sudo make install
安裝
2.3 解除安裝memcached
sudo apt-get --purge remove memcache
命令操作
說明memcached -h
命令幫助
memcached -d -m 256 -u root -l localhost -p 11210 -c 256 -p /tmp/memcached.pid
啟動memcache
echo stats |nc 127.0.0.1 11211
檢視memcached執行狀態
ps -ef|grep memcached
檢視memcached狀態
啟動引數:
引數含義
-p指定埠號(預設值:11211)
-u num
udp 監聽埠 (預設值: 11211, 0 時關閉)
-s file
用於監聽的 unix 套接字路徑(禁用網路支援)
-a mask
unix 套接字訪問掩碼,八進位制數字(預設值:0700)
-l ip_addr
繫結位址 (預設:所有都允許,無論內外網或者本機更換 ip,
有安全隱患。若設定為 127.0.0.1 就只能本機訪問)
-d啟動乙個守護程序
-r最大化核心檔案限制
-u username
繫結使用指定用於執行程序 (只有 root 使用者可以使用這個引數)
-m指定最大使用記憶體大小(預設值:64 mb)
-m記憶體耗盡時返回錯誤,而不是刪除項
-t執行緒數(預設值:4)
-c最大同時連線數(預設是 1024)
-f塊大小增長因子(預設是 1.25)
-n bytes
最小分配空間,key+value+flags(預設值:48)
-c禁用 cas
-s啟用 sasl 安全驗證功能,開啟後,客戶端需要提供使用者名稱密碼才能訪問 memcached
Memcached 學習筆記(一)
memcached 學習筆記 一 什麼是memcached?memcashed專案由dango interactive公司開發,最初為了加速livejournal訪問速度而開發,後來成為廣泛應用的開源專案。它是基於記憶體工作的鍵 值儲存型的資料庫。操作簡單,但是能解決很多問題。在過去的幾年,廣泛用於...
Memcached學習筆記02
memcached set命令用於將value 資料值 儲存在指定的key 鍵 中。如果set的key已經存在,該命令可以更新該key所對應的原來的資料,也就是實現更新的作用。語法 set命令的基本語法格式如下 set key flags exptime bytes noreply value引數說...
Memcached學習筆記03
memcached get命令獲取儲存在key 鍵 中的value 資料值 如果key不存在,則返回空。語法 get命令的基本語法格式如下 get key多個key使用空格隔開,如下 get key1 key2 key3引數說明如下 例項 在以下例項中,我們使用runoob作為key,過期時間設定為...