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/
編譯
tar zxf memcache-2.2.5.tgz cd memcache-2.2.5 phpize 准备预编译环境
[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
[root@server11 etc]# php -m |grep memcache
yum install memcached -y /etc/init.d/memcached start
udp 0 0 0.0.0.0:11211 0.0.0.0:* 498 10940 3706/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
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
<?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 (data will expire in 10 seconds)\n"; $get_result = $memcache->get('key'); echo "Data from the cache:\n"; var_dump($get_result); ?>
不斷刷新,可以在監控頁面看到,快取的命中率(Hits)越來越大
#########以上是php裝載memcache模組的範例程式碼詳解(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!