Garey's Blog–FreeBSD/PHP/GoLang

三月 17th, 2011

关于Memcache::increment和Memcache::decrement的使用

33,985 views, PHP, by garey.

PHP在操作Memcache数据的时候,我们习惯用get,set,delete比较多些,突然发现increment和decrement其实是很有用的,听说使用得当对程序的性能是很有帮助的。

先看下文档里的说明:
Memcache::increment()将指定元素的值增加value。如果指定的key 对应的元素不是数值类型并且不能被转换为数值, 会将此值修改为value。
Memcache::decrement()方法将元素的值减小value。 类似于 Memcache::increment()方法,首先将元素当前值转换成数值然后减去value。

其实它的作用就是快速给Memcache里存储的数据增加或减少一定值,但前提是Memcache里面存储的数据是数值型的,这就要求在设计缓存数据库的时候把经常使用到的数值型的独立出来。

实例:
以前我们这样操作给key为’a'的值加1

<?php
$memcache_obj = new Memcache;
$memcache_obj->connect(‘localhost’, 11211) or die (“Could not connect”);
if ($s = $memcache_obj->get(‘a’)) {
    $s = $s+1;
    $memcache_obj->set(‘a’,$s);
}
else
$memcache_obj->set(‘a’,1);
echo $s;
?>

现在我们可以用increment方法操作

<?php
$memcache_obj = new Memcache;
$memcache_obj->connect(‘localhost’, 11211) or die (“Could not connect”);

if ($s = $memcache_obj->increment(‘a’,1)) {
   echo $s;   
}
else
$memcache_obj->set(‘a’,1);
?>

Back Top

回复自“关于Memcache::increment和Memcache::decrement的使用”

  1. 很好很强大。谢谢

发表评论