内存缓存之memcache的使用
介绍: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中
浙公网安备 33010602011771号