首頁  >  文章  >  後端開發  >  php裝載memcache模組的範例程式碼詳解(圖)

php裝載memcache模組的範例程式碼詳解(圖)

黄舟
黄舟原創
2017-03-28 09:19:301336瀏覽

memcache

定義

memcache是​​一套分散式的高速快取系統  
目前被許多網站使用以提升網站的存取速度,尤其對於一些大型的

工作流程

1.先檢查客戶端存取的資料是否在於memcache,如果有就直接返回
2.如果不在memcache,就去查資料庫,同時快取一份到memcache,大大提高讀取速度。

應用程式與功能

1.用來做網頁或資料庫快取  
2.可用來做session共享  
3.適用於資料變動小但多(如微博粉絲+1)  
4.儲存於內存,無法資料持久化

快取最佳化規則:28原則

20% :熱數據,經常被存取的數據。用作快取,存於記憶體
80%:基本上不變更的資料,存於固態硬碟

php裝載memcache模組

偵測目前php環境

vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin/:/usr/local/lnmp/php/bin


. ~/.bash_profile 或做軟連結

[root@server11 bin]# ln -s /usr/local/lnmp/php/bin /usr/local/bin/

編譯php裝載memcache模組的範例程式碼詳解(圖)

tar zxf memcache-2.2.5.tgz cd memcache-2.2.5
phpize    准备预编译环境

./configure make && make install

保證php的執行路徑是原始碼包的路徑

 [root@server11 memcache-2.2.5]# which php /usr/local/lnmp/php/bin/php
cd /usr/local/lnmp/php/etc/
vim php.ini    记住是.
863         extension=memcache.so
/etc/init.d/php-fpm start
php裝載memcache模組的範例程式碼詳解(圖)檢定

[root@server11 etc]# php -m |grep memcache

rpm -qa |grep php    保證沒有rpm包幹擾

#空

後台安裝設定

yum install memcached -y
/etc/init.d/memcached start

監聽埠netstat -antlpue

udp        
0      
0 0.0.0.0:11211               
0.0.0.0:*                               
498        
10940      
3706/memcached

存取memcached資料庫

yum install telnet -y 
telnet localhost 11211
set name 0 0 6
westos
STORED
get name
VALUE name 0 6
westos
END
delete name
DELETED
get name 
END

編寫監控頁面

cd memcache -2.2.5 

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

vim memcache.php

23 define('ADMIN_PASSWORD','westos');      // Admin Password
28 $MEMCACHE_SERVERS[] = ''; // add more as an array
29 $MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an arra    y

#寫測試頁面

#vim test.php

<?php
$memcache = new Memcache;
$memcache->connect(&#39;127.0.0.1&#39;, 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server&#39;s version: ".$version."\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = &#39;test&#39;;
$tmp_object->int_attr = 123;
$memcache->set(&#39;key&#39;, $tmp_object, false, 10) or die ("Failed to save data at the
server");
echo "Store data in the cache (data will expire in 10 seconds)\n";
$get_result = $memcache->get(&#39;key&#39;);
echo "Data from the cache:\n";
var_dump($get_result);
?>

啟動nginx

nginx

檢定

在瀏覽器存取: 

1. 172.25.88.11/memcache .php    監控cache命中率

2. 172.25.88.11/test.php

php裝載memcache模組的範例程式碼詳解(圖)不斷刷新,可以在監控頁面看到,快取的命中率(Hits)越來越大

php裝載memcache模組的範例程式碼詳解(圖)

#########

以上是php裝載memcache模組的範例程式碼詳解(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn