溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)Memcached服務(wù)該如何理解

發(fā)布時間:2021-12-28 10:49:53 來源:億速云 閱讀:147 作者:柒染 欄目:云計算

本篇文章為大家展示了Linux系統(tǒng)Memcached服務(wù)該如何理解,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Linux系統(tǒng)Memcached服務(wù)
什么是Memcached?  

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對的方式存在。

Memcache工作流程  

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ù)一致

工作邏輯圖如下:

Linux系統(tǒng)Memcached服務(wù)該如何理解

4、如果分配給Memcache的內(nèi)存使用完,會使用LRU(最近最少使用)和過期策略,失效的數(shù)據(jù)就會被替換掉,然后替換掉最近未使用的數(shù)據(jù)

Memcache的特點  

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的安裝  

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

配置Memcached服務(wù)  

通過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è)資訊頻道。

向AI問一下細節(jié)

免責(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)容。

AI