高性能緩存Memcached使用教程

LeonardoEad 8年前發布 | 35K 次閱讀 緩存服務器 memcached

來自: http://blog.csdn.net//chenleixing/article/details/47016555


Memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。

        本文主要介紹如何在Linux系統CENTOS 7下安裝最新版的Memcached,并且詳細介紹Memcached的啟動和關閉細節,以及如何在Window7 下使用telnet遠程連接 Memcached, 最后著重介紹了關于Memcached的各種數據操作指令。


本文涉及到以下幾個方面:

1.memcached  的安裝

2. memcached 的啟動和關閉

3. memcached 各種數據指令操作


1. Linux (CentOS 7)下的memcached 的安裝

     Step1. 安裝libevent

          由于memcached依賴于libevent庫,需要先安裝它,在CentOS Console控制臺輸入以下命令(“#”號一行是注釋,不需要執行的哦):

</div>

  1. #step1. 安裝libevent-devel  
  2. yum install libevent-devel   

</div>

#step1. 安裝libevent-devel
yum install libevent-devel

執行結果類似如下:


 

       Step2. 下載Memcacehd并解壓

  1. #使用wget 指令下載最新包  
  2. wget http://memcached.org/latest  
#使用wget 指令下載最新包
wget http://memcached.org/latest


下載后會生成一個latest文件,該文件實際上是*.tar.gz 類型的文件。然后使用如下命令將其解壓:

</div>

  1. #解壓latest  
  2. tar -zxvf latest  

</div>

#解壓latest
tar -zxvf latest
解壓后會生成對應的memcached 目錄,當前最新版本的memcached生成的目錄是memcached-1.4.22,如下所示

           Step3. 安裝memcached

上述文件解壓后會生成memcached目錄,進入該目錄,執行如下安裝指令:

</div>

  1. #進入memcached目錄,并安裝之  
  2. cd memcached-1.x.x  
  3. ./configure && make && sudo make install  

</div>

#進入memcached目錄,并安裝之
cd memcached-1.x.x
./configure && make && sudo make install


如果沒有明顯報錯,則表示正確安裝。

       Step4. 測試是否安裝成功

1.開啟memcached服務:

</div>

  1. memcached -d -p 11211 -m 256  

</div>

memcached -d -p 11211 -m 256

使用上述的指令是以守護進程的形式開啟memcached服務,端口為11211,使用256MB大小的內存空間存儲數據。


 具體的memcached指令的參數設置,請關注下一節。

2. 使用telnet進行連接

           我在CENTOS下 安裝的memcached,現在我將在Windows7 下使用telnet連接memcached

           a. 開啟Windows7 控制臺,輸入:   telnet  memcached_IP   memcached_PORT

   

b. 按Enter后,進入如下的頁面:按Enter后,如果正常連接,會顯示如此圖所示的黑框框,輸入任何東西都不會顯現出來,看不到任何東西,這是因為Win7 中將telnet 回顯功能關閉了,這時候需要手動設置回顯。


c. 對當前框同時按下  “CTRL ”和“]” 健,將進入如下頁面:


d. 輸入  “set  localecho”,開啟回顯telnet回顯功能

e. 按下Enter鍵,進入telnet 交互界面,這時候用戶可以看到自己的輸入了,并且可以看到連接的memcached返回的交互信息:

  1. #向memcached存放一個key為variable、值為“louis”的鍵值對  
  2. set variable1 0 0 5  
  3.   
  4. #取出key為variable的值  
  5. get variable  
#向memcached存放一個key為variable、值為“louis”的鍵值對
set variable1 0 0 5

#取出key為variable的值
get variable

至此,你就可以使用你的memcached啦。這里只是介紹了怎樣安裝它和簡單的使用。

2. 接下來就要具體介紹memcached的啟動和關閉

a.  memcached的啟動

               啟動memcached 很簡單,在shell中輸入memcached即可,如下所示:

  

  1. memcached  
memcached

上述的命令會啟動一個memcached服務,默認服務端口是11211。如果你想更大程度地定制你的memcached 你可以使用memcached指令的參數來設置。 

如果我們正確地安裝了memcached,那么,在shell中會有memcached指令,memcached指令負責memcached緩存庫的參數的配置和啟動。

            memcached指令的詳細使用方法,可以使用  memcached -help 查看,下面介紹幾個影響到memcached性能的幾個參數:

           常用的配置如下圖所示:

-d, 該參數會將以守護線程的形式啟動memcached。區別如下所示:



b.memcached 服務的關閉

      memcached服務的關閉比較笨拙,沒有提供相應的簡單的指令,要關閉memcached服務,就是要查找對應memcached的進程號,然后將對應的進程殺死。

方法1.手動關閉memcached服務

a. 查看當前有多少個memcached 進程:

  1. ps  -ef | grep memcached  
ps  -ef | grep memcached


b. 找到要關閉memcached 對應的進程號PID,然后執行:

  1. kill  -9   PID  
kill  -9   PID


  方法2. 創建時保存進程PID到文件,關閉的時候直接從文件獲取PID

   在memcached服務 創建的時候,可以使用-P  PidFile,將此memcached 服務的進程號PID保存到文件中,但需要關閉此memcached服務時,直接讀取對應文件的PID,然后使用kill -9 PID 殺死即可。

</blockquote>


3.   memcached 的操作指令

        memcached本質上就是內存中的一個Map鍵值對集合,對于這個Map基本操作有以下幾個:

  • 基本數據操作
    • set               設置指定鍵值對
    • add               若當前鍵值Key不存在,添加指定鍵值對
    • replace        若當前鍵值Key存在,更新當前Value值
    • get               獲取指定鍵值對
    • delete          刪除指定鍵值對
    </li>
  • 高級數據操作
    • gets             獲取鍵值key對應的值,返回信息中攜帶版本號
    • cas               指定版本號對鍵值key進行賦值,版本號不匹配,允許賦值
    • </ul> </li> </ul>

      • 緩存管理操作
        • stats             統計當前memcached 的數據信息。
        • flush_all      清空當前memcached 服務的所有緩存數據


        </li> </ul> </blockquote>

        基本數據操作:set、add、replace操作

             set、add、replace操作的格式相同,如下圖所示:

           注意:

            1. set、add、replace 操作指令需要輸入兩行才能完成,第一行是指令前段,第二行是value值;

            2. set、add、replace操作指定的字節數<length> 參數的大小要和第二行輸入的字符串的個數保持完全相同,否則將會報:CLIENT_ERROR bad data chunk


        1、set操作

            set 命令用于向緩存添加新的鍵值對。如果鍵已經存在,則之前的值將被替換。

           

              如上圖所示,如果set指令正確執行,memcached將會返回一個“STORED”信息,表示該指令被正確處理、已經將緩存數據放到了memcached中。


        2. add操作

               向緩存中添加一個鍵值對,如果該鍵值key在緩存中尚未存在,則該鍵值對將添加到memcached緩存中;如果該鍵值已經存在了,那么保留以前的值,向客戶端返回“NOT STORED”



        3. replace操作

            僅當鍵已經存在時,replace 命令才會替換緩存中的鍵。如果緩存中不存在鍵,那么您將從 memcached 服務器接受到一條NOT_STORED 響應。


        </fieldset>

        基本數據操作:get、delete操作

        get和delete操作的格式比較簡單,格式如下:

                 <command>    <key>                            


        4. get 操作

        從緩存中根據key值取數據。如果緩存中有數據,這返回該數據;如果緩存中沒有,則什么都不返回。



        5.  delete 操作

           delete 命令用于刪除 memcached 中的任何現有值。您將使用一個鍵調用delete,如果該鍵存在于緩存中,則刪除該值。如果不存在,則返回一條NOT_FOUND 消息。



        </fieldset>

        高級數據操作:gets、cas操作

        6. gets操作

              gets操作和get操作的功能差不多,但它比get都返回一個信息:即這個鍵值對的“版本號”,版本號是使用64位的整形值表示的。memcached在以鍵值對進行存儲的時候,會統計鍵值key的使用情況,每次以鍵值key進行增、刪、改操作鍵值對的時候,該鍵值key代表的鍵值對的版本都會遞增。

               操作形式為:

                  gets    key                       

            操作如下:



        7. cas操作

                 cas操作是(check and set)的縮寫,在針對某個鍵值key設置對應的值的時候,要加上鍵值key目前的版本號。如果你指定的版本號比和鍵值Key的實際版本號不一致時,不會進行set操作,返回“EXISTS”提示。
              

                cas 的操作語法如下:

                              cas   key  flags   expiration_time  length   version           



        </fieldset>

        管理操作:stats、flush_all 操作

        8.   stats

                 stats 是statistics單詞的拼寫,即統計的意思。該指令攻擊當前memcached服務的各種指標。這些指標跟memcached 的性能和工作狀況緊密相關。



        9. flush_all

            flus_all 指令用于清空memcached中所有的鍵值對。


         

         

        </fieldset> </blockquote>

 本文由用戶 LeonardoEad 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!