php代码实现Memcache缓存的实例
编辑时间:2017-08-10 作者:jack
## 缓存的思路 首先php先从缓存中读取数据,如果缓存中没有拿到想要数据,才从数据库中查询,得到数据后将数据放到缓存中,然后再返回给PHP。 如果缓存中有想要的数据,直接从缓存中得到,就不查询数据库。`当然,这只是缓存的最基本,缓存的数据还是需要更新的。比如,我们在后台更新了商品数据,同时也要更新对应的商品缓存数据。` `<?php $m = new Memcache; $m->addServer('192.168.35.253', 11211); $sql = 'select id,gname,descp,price,num,store,pic from shop_goods limit 100'; $key = md5($sql); //这个数据需要从数据库得到,建议在后台做一个缓存模块。这个模块可以管理数据缓存时间 $expire = 10; $goodsData = $m->get($key); if (!$goodsData) { //查询数据库 $dsn = 'mysql:host=127.0.0.1;dbname=lamp27;charset=utf8'; $pdo = new PDO($dsn, 'root', '123456'); echo '又来查询数据库。不好哦<br/>'; sleep(2); //发送SQL模板给数据库 $stmtObj = $pdo->prepare($sql); //执行SQL语句 $stmtObj->execute(); //拿到商品数据 $goodsData = $stmtObj->fetchAll(2); //缓存数据 $m->set($key, $goodsData, 2, $expire);//expire有效期 } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>列表</title> </head> <body> <table> <!-- id,gname,descp,price,num,store,pic --> <tr> <th>序号</th> <th>商品名</th> <th>描述</th> <th>价格</th> <th>数量</th> <th>库存</th> <th>图片</th> </tr> <?php foreach($goodsData as $v):?> <tr> <td><?php echo $v['id']?></td> <td><?php echo $v['gname']?></td> <td><?php echo $v['descp']?></td> <td><?php echo $v['price']?></td> <td><?php echo $v['num']?></td> <td><?php echo $v['store']?></td> <td><?php echo $v['pic']?></td> </tr> <?php endforeach;?> </table> </body> </html>`
来说两句吧
最新评论