memcached +mysql+php 測試案例

參考:http://deidara.blog.51cto.com/400447/317526/


一、測試環境:

wKioL1Xup4ihJABKAACwHLXitCo559.jpg


二、測試步驟:

1、完成基礎環境的搭建(nginx+php-fpm+memcache+memcached+mysql) 

  注意:

  nginx+php-fpm與mysql環境的分離

  php如何擴展模塊memcache

  memcache與memcached的區別


2、啓動這個環境,保證能夠正常的啓動

  注意:

  啓動memcached:

  memcached -d -m 100 -l 192.168.1.120 -p 11211 -u root


3、數據庫授權用戶test和IP地址可以訪問數據庫jiang

 grant all on jiang.* to 'test'@'192.168.1.120' identified by 'test';


4、創建數據庫和表內容

 create database jiang;

 mysql> use jiang;


 mysql> CREATE TABLE `personal_info` (

      `pi_id` bigint(20) NOT NULL auto_increment,

      `pi_name` varchar(50) NOT NULL,

      `pi_tel` varchar(15) default NULL,

      `pi_qq` varchar(15) default NULL,

      `pi_email` varchar(50) default NULL,

      PRIMARY KEY (`pi_id`)

      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

 mysql> INSERT INTO `jiang`.`personal_info` (

     `pi_id` ,

     `pi_name` ,

     `pi_tel` ,

     `pi_qq` ,

     `pi_email`

     )

     VALUES (

      '1', 'jiang', '1586544556', '42423423', '[email protected]'

     );


mysql> select * from personal_info

    -> ;

+-------+---------+------------+----------+--------------------+

| pi_id | pi_name | pi_tel     | pi_qq    | pi_email           |

+-------+---------+------------+----------+--------------------+

|     1 | jiang   | 1586544556 | 42423423 | [email protected] |

+-------+---------+------------+----------+--------------------+


5、php測試代碼(原理,如果memecached中有查詢的值,則直接讀取,如果沒有從mysql數據庫讀取,並重新寫一份到memcached中)


<?php

$memcachehost = '192.168.1.120';

$memcacheport = 11211;

$memcachelife = 60;

$memcache = new Memcache;

$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");

$query="select * from personal_info limit 10";

$key=md5($query);

if(!$memcache->get($key))

{

                $conn=mysql_connect("192.168.1.121","test","test");

                mysql_select_db(jiang);

                $result=mysql_query($query);

                while ($row=mysql_fetch_assoc($result))

                {

                        $arr[]=$row;

                }

                $f = 'mysql';

                $memcache->add($key,serialize($arr),0,30);        //mysql 查詢後,插入 memcached

                $data = $arr ;

}

else{

        $f = 'memcache';

        $data_mem=$memcache->get($key);

        $data = unserialize($data_mem);

}

echo $f;

echo "<br>";

echo "key:";

print_r($key);

echo "<br>";

foreach($data as $a)

{

                echo "number is <b><font color=#FF0000>$a[pi_id]</font></b>";

                echo "<br>";

                echo "name is <b><font color=#FF0000>$a[pi_name]</font></b>";

                echo "<br>";

                echo "tel is <b><font color=#FF0000>$a[pi_tel]</font></b>";

                echo "<br>";

                echo "qq is <b><font color=#FF0000>$a[pi_qq]</font></b>";

                echo "<br>";

                echo "email is <b><font color=#FF0000>$a[pi_email]</font></b>";

                echo "<br>";


}

?>


6、測試結果

訪問:http://192.168.1.120/memsql.php

wKiom1Xuo_WQ_m3QAACJ75g2kUk342.jpg

wKiom1XupAGTbBuGAAC0MTiKlKA074.jpg

telnet 192.168.1.120


get 76fc3b222d217ac77d6797672fb09eb1       #執行get key就可以獲取memcached緩存的內容

VALUE 76fc3b222d217ac77d6797672fb09eb1 0 161

a:1:{i:0;a:5:{s:5:"pi_id";s:1:"1";s:7:"pi_name";s:5:"jiang";s:6:"pi_tel";s:10:"1586544556";s:5:"pi_qq";s:8:"42423423";s:8:"pi_email";s:18:"[email protected]";}}


  

 

  





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