Memcache for Windows 安装与应用

最近做的一个项目中有一个分类树的页面.因为运用了Ajax异步读取数据(每onclick一下就会请求一下数据库进行查询-_-!!).数据库服务器负载明显的加大.

运维部的同事建议我使用Memcache对数据进行布式内存缓存.

安装部分

1.下载Memcache for win32

下载地址: http://jehiah.cz/projects/memcached-win32/

2.下载php_memcache.dll

下载地址: http://pecl4win.php.net/ext.php/php_memcache.dll
Note:注意你安装的PHP版本来下载相应的dll文件.(我装的是5.2X版本).

3.修改php.ini文件

在 ;Windows Extensions 处加一句
复制内容到剪贴板代码:
; Memcache extension
extension=php_memcache.dll
4.装php_memcache.dll放入到你的扩展文件目录中.一般是php安装目录的ext目录下.

5.重启Apache.打开phpinfo();


如果能找到如上信息.表示安装成功.

————————————————————————————————————————–

应用部分

1.主要方法

(1) Memcache::getVersion 返回memcache的版本信息.

(2) Memcache::connect 创建一个memcache连接对象.

(3) Memcache::pconnect 创建一个memcacher持久连接对象.

(4) Memcache::close 关闭一个Memcache对象.

(5) Memcache::set 用来添加一个值.
有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间.

(6) Memcache::add 作用和Memcache::set方法类似.
两个方法的区别是如果Memcache::add方法的返回值为false,表示这个key已经存在,而Memcache::set方法则会直接覆写.

(7) Memcache::get 用来获取一个值.
只有一个参数(key,在Memcache::set时设置)

(8) Memcache::replace 对一个已有的key进行覆写操作.
有四个参数,与 Memcache::set 相同.

(9) Memcache::increment 对保存的某个key中的值进行加法操作.

(10) Memcache::decremen 对保存的某个key中的值进行减法操作.

(11) Memcache::setCompressThreshold 对大于某一大小的数据进行压缩。

(12) Memcache::delete 删除一个key
有两个参数,第一个是key名称.第二个是删除延迟时间

(13) Memcache::flush 清除所有缓存的数据,但是不会削去使用的内存空间.

(14) Memcache::addServer 添加一个可供使用的服务器地址.

(15) Memcache::setServerParams 在运行时修改服务器的参数.

2.附一个简单的例子:
复制内容到剪贴板代码:
$memcache = new Memcache;//实例化 memcache对象
$memcache->connect(‘127.0.0.1’,11211) or die (“Memcache could not connect”); //创建一个memcache连接对象
$sql = “select * from tableName”;//SQL语句
$key = md5($sql); //设置唯一键值
if(!($memcache->get($key)))//如果没有获取到相应的key值.则对数据库进行查询操作
{
mysql_connect(‘127.0.0.1′,’root’,”);
mysql_select_db(‘databaseName’); //平常的数据库连接操作.
$rt = mysql_query($sql);//执行SQL语句
while($row = mysql_fetch_array($rt))
{
$datas[] = $row;//将记录集保存在数组中
}
$memcache->set($key,$datas);//将数组存入key中
unset($datas);//删除数组
}
var_dump($memcache->get($key));//输出测试
?>