MemCache的实例应用

2025-11-09 19:39:35

1、在项目中最常见的Memcache应用,就是缓存从数据库查询的数据结果,以及保存会话空值信心(session)。那么如何将数据库查询出来的结果使用memcached服务器进行缓存呢?一减少频繁的数据库连接及大量的查询对数据库造成的压力。设计的原则是只要数据库中的记录没有被改变,就不需要重新连接数据库并反复执行的查询语句,相同的查询结果都应该从缓存服务器中获取

2、<?php

         Function select($sql,Memcache $memcache){

         $key =md5($sql);

  $data = $memcache->get($key);

  If(!$data){

  Try{

  $pdo = new PDO(“mysql:host=localhost;dbname=dbtest;”mysql_user”,”mysql_pass””);

}catch(PDOException $e){

  Die(“连接失败:”.$e->getMessage(););

}

$stmt = $pdo->prepare($sql);

$stmt->execute();

$data= $stmt->fetchAll(PDO::FETCH_ASSOC);

$memcache->add($key,$data,MEMCACHE_COMPRESSED,0);

}

Return $data;

}

$memcache = new Memcache;

$memcache->connect(“localhost”,11211);

$data= select(“SELECT  * FROM  user”,$memcache);

Var_dump($data);  

3、上例代码只是项目开发中一个片段,声明了一个select()函数.调用select()函数时,为第一个参数传递一个有结果集的查询语句,第二个参数为MemCache类的对象。在项目中如果都使用这个函数获取数据库中记录的查询结果,则只有第一次调用时连接了一次数据库并从数据库中查询出结果,以后同样的查询语句都会从memcached服务器中获取数据,而不再从数据库查询操作,这样可以在很大程度上减轻数据库压力。在select()方法中,是用md5()函数将sql语句加密,作为存储方法的唯一标识符key,因为在SQL语句中会有一些特殊字符,也是出于安全考虑

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:46
  • 阅读量:122
  • 阅读量:189
  • 阅读量:137
  • 阅读量:120
  • 猜你喜欢