您的位置:首页 > 数据库 > Memcache

内存缓存之memcache的使用

2013-01-24 15:23 405 查看
介绍:memcache是一种缓存技术,它可以把你的数据放入内存,从而通过内存访问,因为内存读取速度很快,所以memcached技术的主要目的就是提速。

   在memcached中维护了一张大的hashtable表,该表是在内存,标的结构式key=>value

   memcached中可以保存的数据类型(字串,数值,数组,对象,布尔值,二进制数据,null)

安装:cmd进入到memcached.exe所在的文件夹

   memcached.exe -d install 安装memcached

   memcached.exe -d start 启动memcached服务

   memcached.exe -p 11212 在指定的端口上启动memcached服务,此时不要关闭控制台

   memcached默认的端口是11211

   memcached.exe -d stop|shutdown 关闭正在运行的memcached服务

   memcached.exe -d uninstall 拆卸安装的memcached服务

   memcached.exe -d restart 重新启动memcached服务

   memcached.exe -c 1000 同时最大连接数,默认是1024

   memcached.exe -m 最大内存使用,单位是mb,默认是64mb,最大是2gb

   memcached.exe -h 显示帮助

   memcached.exe -f块大小增长因子,默认是1.25

使用telnet对memcached进行crud操作

   打开到memcached的链接 telnet 127.0.0.1 11211

   get 读取一个值 get name

   set 设置一个值,如果键名存在,则更新这个键值 set name 0 60 5

   add 添加一个键值对 add name 0 60 5

   replace 替换一个键名的值 replace name 0 60 5

   append 给一个存在的键添加数据 append name 0 60 5

   preappend 在一个键值的前面添加数据 preappend name 0 60 5

   delete 删除一个键值对 delete name

   flush_all 清除所有的数据

   stats 列举出memcached的使用情况

使用php对memcached进行crud操作

   首先安装php的memcached扩展 php_memcached.dll(注意与使用的php的版本要相同)

   


    

<?php

//创建一个memcache实例
$mem=new Memcache();

//建立连接
if(!$mem->connect("127.0.0.1",11211)){
die("连接失败");
}
//增加一个字符串
if($mem->set('name','keyboard',MEMCACHE_COMPRESSED,60)){
echo "添加成功";
}
//添加数值
if($mem->set('num1',100,MEMCACHE_COMPRESSED,60)){
echo "添加成功";
}
//添加数组
$arr=array("beijing","shanghai");
if($mem->set('arr1',$arr,MEMCACHE_COMPRESSED,60)){
echo "添加成功";
}
//添加对象
class Page{
public $number;
public $list;
public $total;
public function __construct($num,$li,$to){
$this->number=$num;
$this->list=$li;
$this->to=$to;
}
}
$page=new Page(100,10,5000);
if($mem->set('obj1',$page,MEMCACHE_COMPRESSED,60)){
echo "添加成功";
}
//读取
$num=$mem->get('num1');
//更新
$num=$mem->replace('num1',10000,MEMCACHE_COMPRESSED,60);
//删除
$mem->delete('num1');
?>


    

使用php实现memcache的分布式缓存

假设我的电脑上有两个memcache

将数据写入到memcache中,write.php

<?php
$mem=new Memcache();

$mem->addServer("127.0.0.1",11211);
$mem->addServer("127.0.0.1",99999);

for($i=0;$i<100;$i++)
{
$mem->set("val".$i,$i,MEMCACHE_COMPRESSED,100);
}
?>


将数据从memcache中读出,read.php

<?php
$mem=new Memcache();

$mem->addServer("127.0.0.1",11211);
$mem->addServer("127.0.0.1",99999);

for($i=0;$i<100;$i++)
{
$mem->set("val".$i,$i,MEMCACHE_COMPRESSED,100);
}
?>


将session数据保存到memcache中

保证memcache扩展开启,memcachd运行

设置php.ini中session.save_handler=memcache

设置php.ini中session.save_path=tcp://localhost:11211

也可以通过php函数 ini_set() 函数在页面设置.

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: