memcache在项目中的应用
一 ?安裝memcache
具體流程這篇文章有寫到: 點(diǎn)擊?鏈接
?
二 在項(xiàng)目中應(yīng)用memcache
為了減輕數(shù)據(jù)庫的查詢壓力,所以我們把一些不經(jīng)常變動(dòng)的數(shù)據(jù)進(jìn)行緩存,用戶查詢時(shí),如果查詢的要求是一樣的,我們就memcache緩存中讀取數(shù)據(jù)并返回去,如果查詢要求變了,我們再到數(shù)據(jù)庫中查詢,并將查詢結(jié)果緩存到memcache,以備下次有同樣需求的時(shí)候,可以直接從memcache緩存中取出數(shù)據(jù)
原理:
我們將sql md5轉(zhuǎn)換成32位字符串,作為key存到memcache, 并將sql查詢的結(jié)果data作為對(duì)應(yīng)的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);?
結(jié)果是可以正常顯示的
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)分析:
第一次從數(shù)據(jù)庫中查詢出數(shù)據(jù),顯示到瀏覽器,并將md5(sql)和查詢結(jié)果data存儲(chǔ)到memcache緩存中
第二次直接從緩存中讀取出數(shù)據(jù),顯示到瀏覽器
注: 我們也可以登錄memadmin 去查看是否將結(jié)果存到了memcache中。軟件地址:【memcache客戶端可視化管理軟件】?
這樣,我們就完成了基本的memcache在項(xiàng)目中的應(yīng)用
?
總結(jié)
以上是生活随笔為你收集整理的memcache在项目中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态语言静态化
- 下一篇: md5和password_hash孰好孰