LNMP架構添加memcached

LNMP架構添加memcached支持,並完成對緩存效果的測試報告;

         memcacheLiveJournalBrad Fitzpatrick開發,是一個自由、高性能、分佈式的分佈式內存對象緩存系統,

         用於動態Web應用以減輕數據庫的負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高了網站訪問的速度。

         MemCaChe是一個存儲鍵值對的HashMap,在內存中對任意的數據(比如字符串、對象等)所使用的key-value存儲,

         數據可以來自數據庫調用、API調用,或者頁面渲染的結果。

 

測試環境爲:   服務器爲192.168.1.188    centos7.2         用一臺服務器測試:

一、創建LNMP架構:

[root@node1 ~]#yum install mariadb-server -y                                                ###安裝mariadb

[root@node1 ~]#vim /etc/my.cnf                    

skip_name_resolve= ON

innodb_file_per_table= ON

[root@node1 ~]#systemctl start mariadb.service

[root@node1 ~]#yum install php-fpm php-mysql php-mbstring php-gd php-xml -y      

###安裝php-fpm   

[root@node1 ~]#systemctl start php-fpm    

[root@node1 ~]#yum install nginx -y                                                                ###安裝nginx

[root@node1nginx]# vim /etc/nginx/nginx.conf                                               ###編輯nginx配置

         location ~ \.php$ {

                   root html;

                   fastcgi_pass    127.0.0.1:9000;

                   fastcgi_index   index.php;

                   fastcgi_param SCRIPT_FILENAME/usr/share/nginx/html$fastcgi_script_name;

                   include               fastcgi_params;

         }

 

[root@node1 ~]#systemctl start nginx

        

二、下面我們來使用memcached

[root@node1 ~]#yum install memcached -y                              ###安裝memcached

[root@node1 ~]#systemctl start memcached.service

[root@node1 ~]# ss-tunl                                                            ###監聽在tcpudp  11211端口

udp    UNCONN    0      0             :::11211                     :::*                 

tcp    LISTEN    0      128            *:11211                      *:*         

mencached默認工作於文本協議,使用telnet來連接:

[root@node1 ~]#yum -y install telnet

[root@node1 ~]#telnet 192.168.0.188 11211

Trying192.168.0.188...

Connected to192.168.0.188.

Escape characteris '^]'.

stats                                                                                      ###列出當前MemCache服務器的狀態

STAT pid 3540                                                                      ###進程id

STAT uptime 25383                                                              ###運行時間

STAT time1503608657                                                         ###當前時間戳

STAT version1.4.15                                                               ###版本號

STAT libevent2.0.21-stable                                                   ###libvent版本

STAT pointer_size64                                                             ###當前操作系統的指針大小

STAT rusage_user1.063021                                                  ###進程的累積用戶時間

STAT rusage_system0.664388                                              ###累積系統時間

STATcurr_connections 10                                                     ###服務器當前存儲的items數量

STATtotal_connections 11                                                    ###啓動以後存儲的items總數量

STATconnection_structures 11                                             ###服務器分配的連接構造數

STAT reserved_fds20

STAT cmd_get 0                                                                     ### get命令(獲取)總請求數

STAT cmd_set 0                                                                      ### set命令(獲取)總請求數

STAT cmd_flush 0                                                                   ### flush命令請求數

STAT cmd_touch 0                                                                  ### touch命令請求次數

STAT get_hits 0                                                                       ###總命中次數

STAT get_misses 0                                                                  ###未命中次數

STAT delete_misses0                                                              ### delete命令未命中次數

STAT delete_hits 0                                                                  ### delete命中次數

STAT incr_misses 0

STAT incr_hits 0

STAT decr_misses 0

STAT decr_hits 0

STAT cas_misses 0

STAT cas_hits 0

STAT cas_badval 0

STAT touch_hits 0

STAT touch_misses0

STAT auth_cmds 0                                                             ###認證命令處理次數

STAT auth_errors 0                                                            ###認證失敗數

STAT bytes_read 19                                                           ###總讀取字節數(請求字節數)

STAT bytes_written14                                                        ###總髮送字節數(結果字節數)

STATlimit_maxbytes 67108864                                      ###分配給memcached的內存大小(字節)

STATaccepting_conns 1                                                     ###服務器是否達到最大連接(0/1

STATlisten_disabled_num 0                                                ###失效的監聽數

STAT threads 4                                                                   ###當前線程數

STAT conn_yields 0                                                            ###連接操作主動放棄數

STAThash_power_level 16

STAT hash_bytes524288

STAThash_is_expanding 0

STAT bytes 0                                                                         ###當前存儲佔用的字節數

STAT curr_items 0                                                                 ###當前存儲的數據總數

STAT total_items 0                                                                ###啓動以來存儲的數據總數

STATexpired_unfetched 0

STAT evicted_unfetched0

STAT evictions 0

STAT reclaimed 0                                                             ###已過期的數據條目來存儲新數據的數目

END

[root@node1 ~]#yum install libmemcached  -y     ### 提供工具程序的程序包

 

三、安裝PHPmemcached的擴展

php連接memcached服務的模塊有兩個,php-pecl-memcachephp-pecl-memcached.

若要安裝php-pecl-memcached需要依賴libmemcached程序包,可以提供相應操作查看memcached的工具。

在這裏爲方便演示就直接使用php-pecl-memcache擴展模塊。

[root@node1 ~]#yum install php-pecl-memcache -y

測試PHP是否支持Memcached

[root@node1 ~]#vim /usr/share/nginx/html/index.php       

<?php

phpinfo();

?>

wKioL1nIiC7Rjci5AAB5uHmRPc4597.png

四、測試memcached緩存

[root@node1 ~]# vim/usr/share/nginx/html/test.php          ###編輯測試頁

<?php

   $mem = new Memcache;

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

 

   $version = $mem->getVersion();

   echo "Server's version: ".$version."<br/>\n";

 

   $mem->set('hellokey', 'Hello World', 0, 600) or die("Failed tosave data at the memcached server");

   echo "Store data in the cache (data will expire in 600seconds)<br/>\n";

 

   $get_result = $mem->get('hellokey');

   echo "$get_result is from memcached server.";        

?>

如果有輸出“Hello World is from memcached.”等信息,則表明memcache已經能夠正常工作。

 wKioL1nIiEeR6QD4AAAgiKS9vb4374.png


查看MemCache服務器的狀態:

命中24

wKiom1nIiKDCZIwVAAAXvGCTFxE377.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章