memcached 學習筆記

2021-08-28 01:47:09 字數 2741 閱讀 9620

鳴謝:菜鳥教程

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 memcachedubuntu/debian

yum install memcachedredhat/fedora/centos

portmaster databases/memcachedfreebsd

安裝成功後,可以通過下邊的命令確認

命令功能

find / -name 'libevent*' | grep libevent確認libevent

find / -name 'memcached*' | grep memcached確認memcache

2.2 原始碼安裝

步驟命令操作1

wget2

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,過期時間設定為...