PS:原创文章,如需转载,请注明出处,谢谢!
本文地址: http://flyer0126.iteye.com/blog/1751973
前两天写了 memcached读书笔记一 ,偏重于理论,今天有时间主要是PHP中对Memcache的使用,闲话少叙,进入正题~
PHP中的简单应用:
<?php // 简单测试memcached $mc = new Memcache; $mc->connect('127.0.0.1', 11211); $key = ''; $mc->set('key', 'flyer0126'); $ret = $mc->get('key'); print_r($ret); //输出信息: flyer0126
为了更好的调用,在此封装一下:
<?php /** * 单例模式构造Memcache 操作类 * @author flyer0126 * @since 2012/12 */ class mem_cache extends Memcache { static $instance = NULL; private $mem_cache_servers = "127.0.0.1:11211"; // 设置cache的host及port信息 private $prefix = 'flyer0126_'; // 设置key的前缀 public $is_cache = true; // 设置是否使用cache数据 /** * 获取对象实例 * @return [type] [description] */ static function get_instance() { if (self::$instance == NULL) { self::$instance = new mem_cache(); } return self::$instance; } /** * 构造函数私有化,防止外界调用 */ private function __construct() { if (strpos(',', $this->mem_cache_servers)) { $memcached_servers = explode(',', $this->mem_cache_servers); }else{ $memcached_servers = array($this->mem_cache_servers); } // 向连接池中添加memcache服务器 foreach ($memcached_servers as $key => $value) { list($server, $port) = explode(':', $value); parent::addServer ($server, $port, false); } } /** * 根据key获取cache值 * @param [type] $key [description] * @return [type] [description] */ function get($key) { if (!$this->is_cache || !strlen($key)) { return false; } $key = $this->hash($key); return parent::get($key); } /** * 设置cache值 * @param [type] $key [description] * @param [type] $value [description] * @param integer $flag [description] * @param integer $expire [description] */ function set($key, $value, $flag=0, $expire=0) { if (!strlen($key)) { return false; } $key = $this->hash($key); return parent::set($key, $value, $flag, $expire); } /** * 对key进行md5加密 * @param [type] $key [description] * @return [type] [description] */ function hash($key) { return md5($this->prefix.$key); } /** * 删除对应key的cache值 * @param [type] $key [description] * @return [type] [description] */ function delete($key) { if (!strlen($key)) { return false; } $key = $this->hash($key); return parent::delete($key); } /** * 删除对应数组key的cache值 * @param [type] $key_ary [description] * @return [type] [description] */ function delete_ary($key_ary) { if (!is_array($key_ary)) { return false; } foreach ($key_ary as $item) { $this->delete($item); } return true; } }
测试一下:
<?php // 测试例子 $mc = mem_cache::get_instance(); $mc->set('key', 'flyer0126'); $ret = $mc->get('key'); var_dump($ret); // string(9) "flyer0126" $mc->is_cache = false; $ret1 = $mc->get('key'); var_dump($ret1); // bool(false) $mc->is_cache = true; $ret2 = $mc->get('key'); var_dump($ret2); // string(9) "flyer0126" $mc->delete('key'); $ret2 = $mc->get('key'); var_dump($ret2); // bool(false)
Memcache 在PHP中应用更多的是存储数据库查询结果,原理是一致的,在此就不再赘述了~
相关推荐
memcached-笔记资料
Memcached学习笔记2.docMemcached学习笔记2.doc
Memcached源码剖析笔记:从源码级别剖析memcached的实现原理,讲的比较细。
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
memcached-笔记资料.rar
memcached 源码剖析笔记和源码。 Memcached 是一个自由、源码开放、高性能、分布式内存对象缓存系统,目的在于过减轻数据库负载来使动态 Web 应用程序提速。
memcached作为hibernate二级缓存必备的jar包.包含hibernate-memcached-1.2.2.jar memcached-2.1.jar spy-2.4.jar
hibernate-memcached, 在Hibernate中,使用Memcached作为第二级分布式缓存的库 休眠 memcachedHibernate中使用Memcached作为第二级分布式缓存的库。基于优秀的spymemcached客户端包含对 Whalin ( danga ) memcached...
memcached, libevent, MemCachedClient
memcached 64位 window memcached 64位 window memcached 64位 window
在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装 3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动...
韩顺平 PHP Memcached缓存技术资料源码笔记图解PPT_Ady
Memcached源码剖析笔记
Memcached源码剖析笔记
NULL 博文链接:https://acooly.iteye.com/blog/1120347
安装Memcached及Memcached配置
python-memcached python-memcached
memcached安装软件 libevent-2.0.21-stable.tar.gz magent.tar.gz memcached-1.4.15.tar.gz
memcached协议中文版 memcached协议中文版 memcached协议中文版