日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺解memcache

一.什么是memcache?

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),臨滄企業(yè)網(wǎng)站建設(shè),臨滄品牌網(wǎng)站建設(shè),網(wǎng)站定制,臨滄網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,臨滄網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

  memcache是一套分布式的高速緩存系統(tǒng),對(duì)于一些大型的、需要頻繁訪問數(shù)據(jù)庫的網(wǎng)站訪問速度提升效果十分顯著,是一套開放源代碼軟件。它通過在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨大的hash表,它能夠用來存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等。簡(jiǎn)單的說就是將數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。服務(wù)器端主程序memcached是以守護(hù)程序(監(jiān)聽)方式運(yùn)行于一個(gè)或多個(gè)服務(wù)器中,隨時(shí)會(huì)接收客戶端的連接和操作,最大同時(shí)連接數(shù)為200。memcache既支持TCP協(xié)議,也支持UDP協(xié)議。

二.memcache的工作流程

        memcache先檢查客戶端的請(qǐng)求數(shù)據(jù)是否在memcached中,如有,直接把請(qǐng)求數(shù)據(jù)返回,不再對(duì)數(shù)據(jù)庫進(jìn)行任何操作;如果請(qǐng)求的數(shù)據(jù)不在memcached中,就去查數(shù)據(jù)庫,把從數(shù)據(jù)庫中獲取的數(shù)據(jù)返回給客戶端,同時(shí)把數(shù)據(jù)緩存一份到memcached中(memcached客戶端不負(fù)責(zé),需要程序明確實(shí)現(xiàn));每次更新數(shù)據(jù)庫的同時(shí)更新memcached中的數(shù)據(jù),保證一致性;當(dāng)分配給memcached內(nèi)存空間用完之后,會(huì)使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效數(shù)據(jù)首先被替換,然后再替換掉最近未使用的數(shù)據(jù)。

三.memcached與redis

        redis是一個(gè)開源的日志型、Key-Value數(shù)據(jù)庫,與memcache相比,有如下區(qū)別:

        1.memcached所有數(shù)據(jù)一直存儲(chǔ)在內(nèi)存中,而redis并不是;

        2.memcached只支持簡(jiǎn)單的key/value類型的數(shù)據(jù),redis支持list、set、hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ);

        3.redis支持?jǐn)?shù)據(jù)的備份,即主從數(shù)據(jù)的復(fù)制;

        4.redis支持?jǐn)?shù)據(jù)的持久化,可以講內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。

四.memcached在php中的簡(jiǎn)單應(yīng)用


系統(tǒng)環(huán)境:rhel6 x32 selinux and iptables disabled

主機(jī)角色:172.25.46.1 nginx php memcached

此實(shí)驗(yàn)中關(guān)于nginx和php的安裝不再講解,可參考我之前的文章《基于lnmp架構(gòu)的Dsicuz論壇》


  • 獲取源碼包并進(jìn)行解壓縮

     #  tar zxf memcache-2.2.5.tgz

        cd memcache-2.2.5

  • 配置環(huán)境變量

     #   vi ~/.bash_profile

        PATH=$PATH:$HOME/bin:/usr/local/lnmp/MySQL/bin:/usr/local/lnmp/php/bin

     #   source ~/.bash_profil

  • 使用phpzie擴(kuò)展php模塊,即在php中加入memcached模塊

   #    phpize

        Configuring for:

        PHP Api Version:        20100412

               Zend Module Api No:      20100525

               Zend Extension Api No:    220100525

          #   ./configure --enable-memcache

          #     make &&make install

                 Installing shared extensions:     /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20100525/

          #     cd   /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20100525/

          #     ll memcache.so

                -rwxr-xr-x 1 root root 259040 Jan 16 14:00memcache.so

  •         memcached為php做緩存

        #     cd /usr/local/lnmp/php/etc

        #     vim  php.ini

                844 ;  extension=msql.so

                845    extension=memcache.so

  •          編寫php函數(shù)

        #        cd  /usr/local/lnmp/nginx/html

        #        vim  index.php

                 

                 phpinfo()

                 ?>

  •         開啟nginx及php服務(wù)

     #      nginx

     #      nginx -s reload

         #     /etc/init.d/fpmrestart

       

此時(shí)可以使用瀏覽器測(cè)試php頁面,我在實(shí)驗(yàn)中訪問的是172.25.46.1/index.php,如圖:

淺解memcache

  • 安裝并啟動(dòng)memcached服務(wù)

      #  yum install -y memcached.x86_64

     #   /etc/init.d/memcached start

  • 測(cè)試端口

    #   telnetlocalhost 11211

          Trying ::1...

          Connected to localhost.

          Escape character is '^]'.

          stats                                       ##查看memcached狀態(tài)

          STAT pid 4664

          STAT uptime 72

          STAT time 1452925893

          STAT version 1.4.4

           ......

          STAT curr_items 0

          STAT total_items 0

          STAT evictions 0

          END

          quit

  • 將memcached監(jiān)控頁面放到nignx的發(fā)布目錄下

     #    cd memcache-2.2.5

      #    cp memcache.php /usr/local/lnmp/nginx/html/

      #    cd /usr/local/lnmp/nginx/html/

      #    vim memcache.php      

            $VERSION='$Id: memcache.php,v 1.22008/09/11 19:21:06 mikl Exp $';

 

            define('ADMIN_USERNAME','memcache');    // Admin Username              

            define('ADMIN_PASSWORD','westos');      // Admin Password                     

            define('DATE_FORMAT','Y/m/d H:i:s');

            define('GRAPH_SIZE',200);

            define('MAX_ITEM_DUMP',50);

 

            $MEMCACHE_SERVERS[] = '172.25.46.1:11211';// add more as an array             #監(jiān)聽本機(jī)的11211端口

            #$MEMCACHE_SERVERS[] ='mymemcache-server2:11211'; // add more as an array

注意:在此實(shí)驗(yàn)中,編輯此文件時(shí)要將后兩行注釋掉一行。我在實(shí)驗(yàn)開始,都打開后,可以訪問到監(jiān)控頁面,但是顯示不了監(jiān)控畫面。

  • 編寫測(cè)試頁面

  # vim test.php

        

       $memcache = new Memcache;

       $memcache->connect('127.0.0.1', 11211)or die ("Could not connect");

       $version = $memcache->getVersion();

       echo "Server's version:".$version."\n";

       $tmp_object = new stdClass;

       $tmp_object->str_attr = 'test';

       $tmp_object->int_attr = 123;

       $memcache->set('key', $tmp_object,false, 10) or die ("Failed to save data at the

       server");

       echo "Store data in the cache (datawill expire in 10 seconds)\n";

       $get_result = $memcache->get('key');

       echo "Data from the cache:\n";

       var_dump($get_result);

       ?>

  此時(shí)可以使用瀏覽器訪問memcached監(jiān)控頁面,我在實(shí)驗(yàn)中訪問的是172.25.46.1/memcache.php,用戶及密碼是文件memcache.php編輯的,如圖:

 淺解memcache

進(jìn)入監(jiān)控頁面,可以看到緩存使用為0,命中率為50%:

淺解memcache

訪問test.php頁面,對(duì)memcached進(jìn)行測(cè)試,實(shí)驗(yàn)中我訪問的是172.25.46.1/test.php,如圖:

淺解memcache

刷新此頁面,再觀察memcached監(jiān)控頁面發(fā)生變化,緩存使用為119.0,命中率為85.7%,如圖:

淺解memcache

這是一個(gè)簡(jiǎn)單的memcached在php中的應(yīng)用,如您發(fā)現(xiàn)博文中存在問題或者您有更好地建議和意見可及時(shí)反饋給我哦~謝謝您的來訪!

淺解memcache


當(dāng)前標(biāo)題:淺解memcache
瀏覽地址:http://www.dlmjj.cn/article/gsioeg.html