溫馨提示×

溫馨提示×

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

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

memcached 快速入門

發(fā)布時間:2020-08-21 15:53:38 來源:網絡 閱讀:782 作者:haibo3434358 欄目:建站服務器

Memcache簡介

 Memcached是什么?
    Memcached是由Danga Interactive開發(fā)的,高性能的,分布式的內存對象緩存系統(tǒng),
      用于在動態(tài)應用中減少數據庫負載,提升訪問速度。

 Memcached能緩存什么?
    通過在內存里維護一個統(tǒng)一的巨大的hash表,Memcached能夠用來存儲各種格式的數據,
     包括圖像、視頻、文件以及數據庫檢索的結果等。

 Memcached快么?
    非常快。Memcached使用了libevent(如果可以的話,在linux下使用epoll)來均衡任何數量的打開鏈接,
      使用非阻塞的網絡I/O,對內部對象實現引用計數(因此,針對多樣的客戶端,對象可以處在多樣的狀態(tài)),
      使用自己的頁塊分配器和哈希表,因此虛擬內存不會產生碎片并且虛擬內存分配的時間復雜度可以保證為O(1)。
      Danga Interactive為提升Danga Interactive的速度研發(fā)了Memcached。

 Memcached的特點
    Memcached的緩存是一種分布式的,可以讓不同主機上的多個用戶同時訪問,
      因此解決了共享內存只能單機應用的局限,更不會出現使用數據庫做類似事情的時候,
      磁盤開銷和阻塞的發(fā)生。

      緩存數據:
      1.在內存中緩存數據    2.數據形態(tài)以key->value結構     3.安全度非常差的

Memcache安裝

 Windows下操作

    1 在網上下載memcached-1.2.1-win32.zip。解壓放某個盤下面,比如在c:\memcached
    2 在終端(cmd)下:
        D:\AppServ>memcached.exe -d install     安裝
        D:\AppServ>memcached.exe -d uninstall 卸載
        D:\AppServ>memcached.exe -d start     啟動
        D:\AppServ>memcached.exe -d stop     停止
            memcached.exe -h  獲取所有幫助
    3 在啟動之后連接:
        D:\AppServ> telnet 127.0.0.1 11211   --連接memcache端口11211
        使用quit退出。
    4 其他命令參數:
        啟動Memcache 常用參數
        -p <num>   設置端口號(默認不設置為: 11211)
        -U <num>   UDP監(jiān)聽端口(默認: 11211, 0 時關閉) 
        -l <ip_addr> 綁定地址(默認:所有都允許,無論內外網或者本機更換IP,
            有安全隱患,若設置為127.0.0.1就只能本機訪問)
        -d   獨立進程運行
        ... -d start 啟動memcached服務 
        ... -d restart 重起memcached服務 
        ... -d stop|shutdown 關閉正在運行的memcached服務 
        ... -d install 安裝memcached服務 
        ... -d uninstall 卸載memcached服務 
        -u <username> 綁定使用指定用于運行進程<username>
        -m <num>  允許最大內存用量,單位M (默認: 64 MB)
        -P <file> 將PID寫入文件<file>,可以使得后邊進行快速進程終止, 需要與-d 一起使用
        -M 內存耗盡時返回錯誤,而不是刪除項 
        -c  最大同時連接數,默認是1024 
        -f 塊大小增長因子,默認是1.25 
        -n 最小分配空間,key+value+flags默認是48 
        -h 顯示幫助

 PHP開啟Memcache模塊

    1.phpinfo()檢測是否有memcache擴展

    2.php擴展目錄 extension_dir
        php_memcache.dll放置到php擴展目錄下

    3.php配置文件修改
        extension=php_memcache.dll

    4.重啟apache服務


Linux下安裝操作:
        
    2.1 #為php環(huán)境安裝memcache擴展

        首先下載php7.0支持的擴展包 pecl-memcache-php7.zip
        地址:https://github.com/websupport-sk/pecl-memcache/archive/php7.zip

    1. 將pecl-memcache-php7.zip文件傳到服務器上 /root
    2. 解壓文件后進入此目錄
       unzip pecl-memcache-php7.zip
       cd pecl-memcache-php7
    3. 由于目錄中沒有configure配置環(huán)境文件
       執(zhí)行 /usr/local/php/bin/phpize 來準備一個編譯環(huán)境
    4. 配置: 加配置
       ./configure --with-php-config=/usr/local/php/bin/php-config

    5. make && make install 編譯和安裝

    6. 安裝成功后就會產生一個memcache.so文件
       /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
    7. 修改php配置文件
       vim  /usr/local/php/etc/php.ini
       添加以下信息
       722行 extension_dir='/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/';
             extension="memcache.so";
    8. 重啟apache服務即可(查看phpinfo())




    2.2 #安裝memcache服務

       memcached-1.4.4-3.el6.i686.rpm
    
       a.首先掛載ISO鏡像文件  DVD1.ISO
               mount /dev/sr0 /mnt/cdrom/
     
       b.安裝memcached
               yum -y install memcached

       c.添加memcache用戶
               useradd memcache

       d.啟動memcache服務    
               memcached -d -m 128 -l 127.0.0.1 -p 11211 -u memcache 
            
       
            查看端口     
            netstat –tunpl|grep :11211              
            win+r打開命令行窗口  連接測試
            telnet 192.168.185.252 11211     
          注意:
            如果輸入telnet命令的時候 出現telnet不是內部命令
            windows系統(tǒng)->控制面板->程序和功能->打開和關閉Windows功能->勾選 telnet客戶端
    
            stats       memcache命令:查看當前狀態(tài)

        e.設置開機自啟動 
               chkconfig memcached on 

   
        f.如何殺掉后臺進程
             pkill memcached

Memcache相關操作
    
####stats 查看狀態(tài)
        STAT pid 1552                      服務進程的進程ID
        STAT uptime 3792                服務從啟動到當前所經過的時間,單位是秒。
        STAT time 1262517674              服務器所在主機當前系統(tǒng)的時間,單位是秒。
        STAT version 1.2.6                   組件的版本。這里是我當前使用的1.2.6。
        STAT pointer_size 32             服務器所在主機操作系統(tǒng)的指針大小,一般為32或64.
        STAT curr_items 1                   表示存放當前的所有緩存對象的數量。不包括已經從緩存中刪除的對象。
        STAT total_items 2                   表示從啟動到當前,系統(tǒng)存儲過的所有對象數量,包括已經刪除的對象。
        STAT bytes 593                      表示系統(tǒng)存儲緩存對象所使用的存儲空間,單位為字節(jié)。
        STAT curr_connections 2           表示當前系統(tǒng)打開的連接數。
        STAT total_connections 28        表示從memcached服務啟動到當前時間,系統(tǒng)打開過的連接的總數。

set  寫入緩存
    set  鍵名  標記  有效時間  數據的長度
        
      set  love  10     0      10
      i love you
        鍵名
              最大不能超過250個字符
         標記
         是一個16位的無符號的整數,該標志將和需要存儲的數據一起存儲,并在客戶端get數據時返回
         有效時間
              單位為秒
         數據長度
              單位是字節(jié)
         數據的值
         最大不能超過1024kb

get  獲取緩存
        get  鍵名
        get  love


####delete  刪除緩存
        delete   鍵名
        delete   love
        flush_all清空所有緩存


###PHP與Memcache的使用
    //實例化Memcache
    $memcache = new Memcache();
    
    //連接Memcache
    $memcache->connect('127.0.0.1','11211');
    $memcache->addServer('127.0.0.1','11211');
    
    //保存數據
    $memcache->set('name','xiaohigh',MEMCACHE_COMPRESSED,60);
    
    //獲取數據
    $memcache->get('name')
    
    //清除所有數據
    $memcache->flush();


###PHP Memcahe類
    connect(ip, port)         連接一臺memcache服務器 
    addServer(ip, port)     添加一臺memcache服務器
    getExtendedStats()    獲取連接池中所有的服務器信息
    getServerStatus(host, port)        獲取指定服務器的連接狀態(tài)
    add(key, value, tag, expires)             添加一條數據
    replace(key, value, tag, expires)     修改一條數據
    set(key, value, tag, expires)             添加或修改一條數據
    get(key)     根據鍵獲取值
    delete(key) 刪除指定一條數據
    flush() 刪除全部
    close()  關閉連接
    getStats()     獲取memcache服務器信息  返回數組
    getVersion()     獲取m emcache服務器版本號


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI