一 ?安裝memcache
具體流程這篇文章有寫到: 點擊?鏈接
?
二 在項目中應用memcache
為了減輕數據庫的查詢壓力,所以我們把一些不經常變動的數據進行緩存,用戶查詢時,如果查詢的要求是一樣的,我們就memcache緩存中讀取數據并返回去,如果查詢要求變了,我們再到數據庫中查詢,并將查詢結果緩存到memcache,以備下次有同樣需求的時候,可以直接從memcache緩存中取出數據
原理:
我們將sql md5轉換成32位字符串,作為key存到memcache, 并將sql查詢的結果data作為對應的value存到memcache
代碼部分:
function inquiry($sql,Memcache $memcache)
{$key = md5($sql);$data = $memcache->get($key);if(!$data) {try {$pdo = new PDO('mysql:dbname=test;host=localhost','root','root');} catch (PDOException $e){die("連接失敗:".$e->getMessage());}$stmt = $pdo->prepare($sql);$stmt->execute();$data = $stmt->fetchAll(2);$memcache->add($key,$data,MEMCACHE_COMPRESSED,0);}Return $data;}$memcache = new Memcache;$memcache->connect('localhost',11211);$data = inquiry('select id,name,age,sex,edu,salary,city from student ',$memcache);Var_dump($data);
?
結果是可以正常顯示的
array (size=39)0 => array (size=7)'id' => string '1' (length=1)'name' => string '周更生' (length=9)'age' => string '24' (length=2)'sex' => string '男' (length=3)'edu' => string '大專' (length=6)'salary' => string '5000.00' (length=7)'city' => string '山東省' (length=9)1 => array (size=7)'id' => string '2' (length=1)'name' => string '王小平' (length=9)'age' => string '28' (length=2)'sex' => string '男' (length=3)'edu' => string '大專' (length=6)'salary' => string '500.00' (length=6)'city' => string '陜西省' (length=9)2 => array (size=7)'id' => string '3' (length=1)'name' => string '周改娟' (length=9)'age' => string '28' (length=2)'sex' => string '女' (length=3)'edu' => string '大專' (length=6)'salary' => string '8000.00' (length=7)
(size=39)0 => array (size=7)'id' => string '1' (length=1)'name' => string '周更生' (length=9)'age' => string '24' (length=2)'sex' => string '男' (length=3)'edu' => string '大專' (length=6)'salary' => string '5000.00' (length=7)'city' => string '山東省' (length=9)1 => array (size=7)'id' => string '2' (length=1)'name' => string '王小平' (length=9)'age' => string '28' (length=2)'sex' => string '男' (length=3)'edu' => string '大專' (length=6)'salary' => string '500.00' (length=6)'city' => string '陜西省' (length=9)2 => array (size=7)'id' => string '3' (length=1)'name' => string '周改娟' (length=9)'age' => string '28' (length=2)'sex' => string '女' (length=3)'edu' => string '大專' (length=6)'salary' => string '8000.00' (length=7)
分析:
第一次從數據庫中查詢出數據,顯示到瀏覽器,并將md5(sql)和查詢結果data存儲到memcache緩存中
第二次直接從緩存中讀取出數據,顯示到瀏覽器
注: 我們也可以登錄memadmin 去查看是否將結果存到了memcache中。軟件地址:【memcache客戶端可視化管理軟件】?
這樣,我們就完成了基本的memcache在項目中的應用
?