您好,登錄后才能下訂單哦!
本篇文章為大家展示了Linux系統Memcached服務該如何理解,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Memcached是一個免費開源的、高性能的、具有分布式內存對象緩存系統,它通過減輕數據庫負載來提高WEB的訪問性能,Memcached是服務端的主程序,這些緩存一般是用來保存一些經常存取的對象或數據(比如瀏覽器會緩存常訪問的網頁緩存一樣),最終用戶通過請求緩存數據提高訪問體驗。
Memcached是一種內存緩存,把常存取的對象或數據緩存在內存中,內存中的緩存的這些數據通過API的方式被存取,數據就像一張巨大的HASH表,以key-value對的方式存在。
1、檢查客戶端請求的數據是否在Memcache中存在,如果存在,直接把相關數據返回,不再對數據進行任何操作
2、如果數據不在Memcache中,會去數據庫進行查詢,把從數據庫中獲取的數據返回給客戶端,同時將數據緩存到Memcache中
3、數據庫更新(更新或刪除數據)的同時也會更新Memcache中的數據,從而保持數據一致
工作邏輯圖如下:
4、如果分配給Memcache的內存使用完,會使用LRU(最近最少使用)和過期策略,失效的數據就會被替換掉,然后替換掉最近未使用的數據
1、協議簡單
使用基于文本行的協議,能直接通過telnet在Memcached服務器上存取數據,實現比較簡單
2、基于Libevent的事件處理
libevent是基于C開發的程序庫,Memcached利用這個庫進行異步事件處理
3、內置內存管理方式
Memcached有一套自己的管理內存方式,而且非常高效,所有數據都保存在Memcached內置的內存中,當存入的數據占滿空間時,會使用LRU算法來清除不使用的緩存數據,從而來重用過期數據的內存空間,但重啟服務器數據將丟失
4、各Memcached服務器間互不通信具有分存式特點
各個Memcached服務器之間互不通信,都是獨立存取數據,通過客戶端的設計讓其具有分存式特點,支持大量緩存和大規模應用
Memcached的安裝很簡單,首先需要下載libevent與Memcached軟件,下載過程就不再介紹了
安裝libevent命令如下(也可直接Yum安裝):
tar zxf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make && make install
安裝Memcached命令如下:
tar zxf memcached-1.4.20.tar.gz
cd memcached-1.4.20
./configure
make && make install
啟動Memcached
/usr/local/bin/memcached -p 11211 -u root -c 1024 -d
##-p 指定端口11211 -c 最大并發 -d 后臺模式
如果出現報錯,提示找不到libevent-1.4.so.xx文件,解決方法如下
echo "/usr/local/lib">>/etc/ld.so.conf
ldconfig
[root@~]# lsof -i :11211
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcached 15744 root 26u IPv4 25499 0t0 TCP *:memcache (LISTEN)
memcached 15744 root 27u IPv6 25500 0t0 TCP *:memcache (LISTEN)
memcached 15744 root 28u IPv4 25503 0t0 UDP *:memcache
memcached 15744 root 29u IPv4 25503 0t0 UDP *:memcache
memcached 15744 root 30u IPv4 25503 0t0 UDP *:memcache
memcached 15744 root 31u IPv4 25503 0t0 UDP *:memcache
通過NC的方式添加數據
[root@~]# printf "set key001 0 0 10\r\ntest123456\r\n"|nc 127.0.0.1 11211
#添加數據,10個字節數,后面要一致,否則添加不成功
STORED
[root@~]# printf "get key001\r\n"|nc 127.0.0.1 11211
#查詢數據
VALUE key001 0 10
test123456
END
[root@~]# printf "delete key001\r\n"|nc 127.0.0.1 11211
#刪除數據
DELETED
[root@~]# printf "get key001\r\n"|nc 127.0.0.1 11211
END
通過telnet 方式添加數據
[root@LVS-2 ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set key 0 0 10
#添加數據
test654321
STORED
get key
#查詢數據
VALUE key 0 10
test654321
END
delete key
#刪除數據
DELETED
get key
上述內容就是Linux系統Memcached服務該如何理解,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。