码迷,mamicode.com
首页 > 系统相关 > 详细

MemCache的实例应用

时间:2016-02-16 11:42:09      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

一、最常见的MemCache应用
       1、缓存从数据库中查询的数据结果;
       2、保存会话控制信息。
二、案例
       1、缓存从数据库中查询的数据结果
       将数据库查询出来的结果使用memcached服务器进行缓存,以减少频繁的数据库连接以及大量的查询对数据库造成的压力。
       设计原则:
      (1)、只要数据库中的记录没有改变,就不需要重新连接数据库并反复执行重复的查询语句;
      (2)、相同的查询结果都应该从缓存服务器中获取。
  1. <?php
  2. /** 该函数用于执行有结果集的SQL语句,并将结果缓存到memcached服务器中
  3. @param string $sql 有结果集的查询语句SQL
  4. @param object $memcache Memcache类的对象
  5. @return $data 返回结果集的数据 */
  6. function select($sql, Memcache $memcache){
  7. /* md5 SQL命令 作为 memcache的唯一标识符*/
  8. $key = md5($sql);
  9. /* 先从memcached服务器中获取数据 */
  10. $data = $memcache->get($key);
  11. /* 如果$data为false那么就是没有数据, 那么就需要从数据库中获取 */
  12. if(!$data) {
  13. try{ //很有必要将连接数据库的过程单独处理
  14. $pdo = new PDO("mysql:host=localhost;dbname=dbtest", "mysql_user", "mysql_pass");
  15. }catch(PDOException $e){
  16. die("连接失败:".$e->getMessage());
  17. }
  18. $stmt = $pdo->prepare($sql);
  19. $stmt->execute();
  20. /* 从数据库中获取数据,返回二维数组$data */
  21. $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
  22. /* 这里向memcached服务器写入从数据库中获取的数据*/
  23. $memcache -> add($key, $data, MEMCACHE_COMPRESSED, 0);
  24. }
  25. return $data;
  26. }
  27. $memcache = new Memcache;
  28. /* 可以使用addServer()方法添加多台memcached服务器 */
  29. $memcache -> connect(‘localhost‘, 11211);
  30. /* 第一次运行还没有缓存数据, 会读取一次数据库, 当再次访问程序时, 就直接从memcache获取*/
  31. $data = select("SELECT * FROM user", $memcache);
  32. var_dump($data); //输出数据





MemCache的实例应用

标签:

原文地址:http://www.cnblogs.com/songziqing/p/5192059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!