您好,登錄后才能下訂單哦!
本篇文章為大家展示了Linux系統(tǒng)Memcached服務(wù)該如何理解,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Memcached是一個免費開源的、高性能的、具有分布式內(nèi)存對象緩存系統(tǒng),它通過減輕數(shù)據(jù)庫負載來提高WEB的訪問性能,Memcached是服務(wù)端的主程序,這些緩存一般是用來保存一些經(jīng)常存取的對象或數(shù)據(jù)(比如瀏覽器會緩存常訪問的網(wǎng)頁緩存一樣),最終用戶通過請求緩存數(shù)據(jù)提高訪問體驗。
Memcached是一種內(nèi)存緩存,把常存取的對象或數(shù)據(jù)緩存在內(nèi)存中,內(nèi)存中的緩存的這些數(shù)據(jù)通過API的方式被存取,數(shù)據(jù)就像一張巨大的HASH表,以key-value對的方式存在。
1、檢查客戶端請求的數(shù)據(jù)是否在Memcache中存在,如果存在,直接把相關(guān)數(shù)據(jù)返回,不再對數(shù)據(jù)進行任何操作
2、如果數(shù)據(jù)不在Memcache中,會去數(shù)據(jù)庫進行查詢,把從數(shù)據(jù)庫中獲取的數(shù)據(jù)返回給客戶端,同時將數(shù)據(jù)緩存到Memcache中
3、數(shù)據(jù)庫更新(更新或刪除數(shù)據(jù))的同時也會更新Memcache中的數(shù)據(jù),從而保持?jǐn)?shù)據(jù)一致
工作邏輯圖如下:
4、如果分配給Memcache的內(nèi)存使用完,會使用LRU(最近最少使用)和過期策略,失效的數(shù)據(jù)就會被替換掉,然后替換掉最近未使用的數(shù)據(jù)
1、協(xié)議簡單
使用基于文本行的協(xié)議,能直接通過telnet在Memcached服務(wù)器上存取數(shù)據(jù),實現(xiàn)比較簡單
2、基于Libevent的事件處理
libevent是基于C開發(fā)的程序庫,Memcached利用這個庫進行異步事件處理
3、內(nèi)置內(nèi)存管理方式
Memcached有一套自己的管理內(nèi)存方式,而且非常高效,所有數(shù)據(jù)都保存在Memcached內(nèi)置的內(nèi)存中,當(dāng)存入的數(shù)據(jù)占滿空間時,會使用LRU算法來清除不使用的緩存數(shù)據(jù),從而來重用過期數(shù)據(jù)的內(nèi)存空間,但重啟服務(wù)器數(shù)據(jù)將丟失
4、各Memcached服務(wù)器間互不通信具有分存式特點
各個Memcached服務(wù)器之間互不通信,都是獨立存取數(shù)據(jù),通過客戶端的設(shè)計讓其具有分存式特點,支持大量緩存和大規(guī)模應(yīng)用
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 最大并發(fā) -d 后臺模式
如果出現(xiàn)報錯,提示找不到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的方式添加數(shù)據(jù)
[root@~]# printf "set key001 0 0 10\r\ntest123456\r\n"|nc 127.0.0.1 11211
#添加數(shù)據(jù),10個字節(jié)數(shù),后面要一致,否則添加不成功
STORED
[root@~]# printf "get key001\r\n"|nc 127.0.0.1 11211
#查詢數(shù)據(jù)
VALUE key001 0 10
test123456
END
[root@~]# printf "delete key001\r\n"|nc 127.0.0.1 11211
#刪除數(shù)據(jù)
DELETED
[root@~]# printf "get key001\r\n"|nc 127.0.0.1 11211
END
通過telnet 方式添加數(shù)據(jù)
[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
#添加數(shù)據(jù)
test654321
STORED
get key
#查詢數(shù)據(jù)
VALUE key 0 10
test654321
END
delete key
#刪除數(shù)據(jù)
DELETED
get key
上述內(nèi)容就是Linux系統(tǒng)Memcached服務(wù)該如何理解,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。