mysql数据改变 memcache 更改_php操作memcache增删改查(CURD)大全

刚接触memcache,感觉用起来还是挺方便的,于是就整理记录一下简单的增删改查(CURD)操作。直接上代码:

创建memcache对象

$m = new Memcache;

// 第一种链接方式

if(!$m->connect("127.0.0.1",11211)){

die('链接失败');

}

// 第二种链接方式

if(!$m->connect("127.0.0.1:11211")){

die('链接失败');

}

一、如何添加到memcache中。

1、添加字符串

if($m->set('key1','beijing',MEMCACHE_COMPRESSED,60)){

echo '添加字符串ok
';

}

2、添加数值

if($m->set('key2',100,MEMCACHE_COMPRESSED,60)){

echo '添加数值ok
';

}

3、添加数组

在添加数组时,如果根据需要,也可以序列化serialize <=> unserialize。拓展知识序列化。

如果根据需要,也可以json_encode <=> json_decode。

$arry = ['a'=>'a','b'=>'b'];

if($m->set('key3',$arry,MEMCACHE_COMPRESSED,60)){

print_r($arr);

echo '添加数组ok
';

}

3.1添加序列化

if($m->set('keyar',serialize($arry),MEMCACHE_COMPRESSED,60)){

print_r($arr);

echo '添加数组ok
';

}

echo $m->get('keyar').'
'; // a:2:{s:1:"a";s:1:"a";s:1:"b";s:1:"b";}

3.2添加json

if($m->set('keyjs',json_encode($arry),MEMCACHE_COMPRESSED,60)){

echo '添加数组ok
';

}

echo $m->get('keyjs').'
'; // {"a":"a","b":"b"}

3.3、添加对象

class Dog{

public $name;

public $age;

public function __construct($name,$age)

{

$this->name=$name;

$this->age= $age;

}

}

$dog = new Dog('小明',50);

if($m->set('key4',$dog,MEMCACHE_COMPRESSED,60)){

echo '添加对象ok
';

}

4、添加布尔值

if($m->set('key5',false,MEMCACHE_COMPRESSED,60)){

echo '添加布尔值ok
';

}

5、添加资源类型 暂时不能使用存储资源型数据

$con = mysql_connect("127.0.0.1","root","root");

if($m->set('key6',$con,MEMCACHE_COMPRESSED,60)){

echo '添加资源ok
';

}

$res = $m->get('key6');

var_dump($res);

二、如何获取或查询出memcache中设置的值。

1、获取字符串、数值、数组、布尔值

$str = $m->get('key1');

$num = $m->get('key2');

$arr = $m->get('key3');

$boo = $m->get('key5');

2、获取对象

$dog = $m->get('key4');

$name = $dog->name;

拓展一:

数组:$arry = ['a'=>'a','b'=>'b'];

1、序列化与反序列化

序列化是将数据保存为一串字符,包括数据的类型和数据的信息。

偏于数据的保存和传输。

例如:

a:2:{s:1:"a";s:1:"a";s:1:"b";s:1:"b";}

2、json_encode与json_decode

偏于对数据更好的处理。

例如:

{"a":"a","b":"b"}

三、数据的修改 replace()

if($m->replace('key1','hello',MEMCACHE_COMPRESSED,60)){

echo 'replace ok
';

}else{

echo 'replace no
';

}

echo $m->get('key1').'
';

四、数据的删除 delete()

if($m->delete('key1')){

echo 'key1 delete ok';

}else{

echo 'key1 不存在';

}

echo $m->get('key1').'
';

拓展二:

在刚学习memcache的时候,对于memcache的参数设置上面有些可能还是有点模糊,那么下面我们详细的剖析一个set的方法进行解析。

说明:

bool Memcache::set ( string $key , mixed $var [, int $flag[, int $expire ]] )

参数:

key 缓存数据的键, 其长度不能超过250个字符

var 值,整型将直接存储,其他类型将被序列化存储,其值最大为1M

flag 是否使用 zlib 压缩,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时候不会采用zlib压缩,只有数据达到一定大小才对数据进行zlib压缩。(没有具体的测试数据进行压缩的最小值是多少)

expire 过期时间,0 为永不过期,可使用 unix 时间戳格式或距离当前时间的秒数,设为秒数时不能大于 2592000(30 天)

注意:

1、如果把expire设置为0,表示永不过期(只要memcache不重启就一直在)。

2、如果把expire给的是秒数,则最大的为30天。30*3600*24。

3、如果希望保存的天数大于30天,那么就用 time()+31*3600*24。

返回值:

成功返回 TRUE,失败返回 FALSE。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值