1. 程式人生 > >PHP與memcached實戰

PHP與memcached實戰

Memcached 是一個高效能的分散式記憶體物件快取系統,用於動態Web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動網站的速度。Memcached基於一個儲存鍵/值對的hashmap。其守護程序(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護程序通訊。

PHP使用Memcached的基本步驟
環境:
伺服器:CentOS 6.4
PHP版本:5.6.30

1、編譯安裝memcached系統服務
http://memcached.org/下載memcached,然後進行編譯安裝

2、編譯安裝memcache擴充套件

pecl.php.net網址下載擴充套件,並進行編譯安裝,形成.so的檔案,然後把.so的檔案路徑新增到php.ini中,然後重啟php-fpm

3、學習memcached的簡單命令

前臺啟動:./bin/memcached -u nobody -p 11211 -m 64 -vvv
後臺啟動:./bin/memcached -u nobody -p 11211 -m 64 -vvv &

4、實戰案例:實現隔5秒去查詢資料庫

可以參考php手冊中的memcache擴充套件Api

<?php
$mem = new Memcache();
$mem
->connect('localhost',11211); $users = $mem->get('users');//從memcached中讀取users資料 if(empty($users)){ $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','1234'); $sql = 'select * from user;'; $st = $pdo->prepare($sql); $st->execute(); $users = $st->
fetchAll(PDO::FETCH_ASSOC); $mem->add('users',$users,false,5);//將users資料新增到memcached中並儲存5秒 echo 'from mysql'.'<br/>'; }else{ echo 'from cache'.'<br/>'; } print_r($users); ?>

思路:
建立一個memcache的物件,然後連線到memcached伺服器上,首先從memcached中讀取是否存在users資料,如果不存在,就連線資料庫伺服器,然後查詢資料,並將資料儲存到memcached中,最後進行輸出。

效果圖:
這裡寫圖片描述