添加memcached服务器并查看服务器的运行状态
php
$m = new Memcached();
/*添加memcached服务器,参数为ip和端口号*/
$m->addServer('127.0.0.1',11211);
/*也可以用如下方式一次性添加多台服务器*/
/*
$array = array(
array('127.0.0.1',11211),
array('127.0.0.2',11211),
)
$m->addServers($array);
*/
//显示memcached的运行状态
print_r($m->getStats());
运行结果如下所示:
Array
(
[127.0.0.1:11211] => Array
(
[pid] => 1724
[uptime] => 101969
[threads] => 4
[time] => 1476102816
[pointer_size] => 32
[rusage_user_seconds] => 12
[rusage_user_microseconds] => 196145
[rusage_system_seconds] => 7
[rusage_system_microseconds] => 282892
[curr_items] => 0
[total_items] => 0
[limit_maxbytes] => 134217728
[curr_connections] => 5
[total_connections] => 39
[connection_structures] => 6
[bytes] => 0
[cmd_get] => 0
[cmd_set] => 0
[get_hits] => 0
[get_misses] => 0
[evictions] => 0
[bytes_read] => 617
[bytes_written] => 36920
[version] => 1.4.31
)
)
查看服务器端的版本号
print_r($m->getVersion());
运行结果为:
Array ( [127.0.0.1:11211] => 1.4.31 )
php
$m = new Memcached();
/*添加memcached服务器,参数为ip和端口号*/
$m->addServer('127.0.0.1',11211);
/*add(),第一个参数为key值,第二个参数为value值,第三个参数为是否压缩,第四个参数为有效期,如果为0,则永久有效
此例中为600则表示600s的有效期*/
$m->add('mkey','mvalue',0,600);
/*根据key值得到value值*/
echo $m->get('mkey');
运行结果为:
mvalue
如果对同一个key值进行两次add操作,第二次不会覆盖第一次的
$m->add('mkey','mvalue',600);
$m->add('mkey','mvalue2',600);
/*根据key值得到value值*/
echo $m->get('mkey');
运行结果仍为mvalue
如果要修改add添加的值,则
$m->add('mkey','mvalue',600);
$m->replace('mkey','mvalue2',0,600);
echo $m->get('mkey');
运行结果为
mvalue2
当数据不存在的时候,新建,存在的时候,覆盖
php
$m = new Memcached();
/*添加memcached服务器,参数为ip和端口号*/
$m->addServer('127.0.0.1',11211);
/*add(),第一个参数为key值,第二个参数为value值,第三个参数为是否压缩,第四个参数为有效期,如果为0,则永久有效
此例中为600则表示600s的有效期*/
$m->set('mkey','mvalue',0,600);
/*根据key值得到value值*/
echo $m->get('mkey');
运行结果为:
mvalue
php
$m = new Memcached();
$m->addServer('127.0.0.1',11211);
$m->set('mkey','mvalue',600);
/*根据key删除数据*/
$m->delete('mkey');
echo $m->get('mkey');
结果输出为空
该方法会清空memcached中的所有缓存,谨慎使用
php
$m = new Memcached();
$m->addServer('127.0.0.1',11211);
$m->flush();
对int型的数值进行加1或加任意值的操作。
php
$m = new Memcached();
$m->addServer('127.0.0.1',11211);
$m->set('num',5,0);
/*第一个参数为需要增加值的key,第二个参数为增加几*/
$m->increment('num',5);
echo $m->get('num');
运行结果为:
10
技巧:设置值以后,去掉$m->set('num',5,0);
,即可以实现刷新一次加个5。
对int型的数值进行减去任意值的操作。
php
$m = new Memcached();
$m->addServer('127.0.0.1',11211);
$m->set('num',5,0);
/*第一个参数为需要增加值的key,第二个参数为增加几*/
$m->decrement('num',5);
echo $m->get('num');
运行结果为:
0
注以下方法只适用于Memcached,不适用于Memcache,关于两者的区别,已经发表过相关博文,本文不在细说。
$m = new Memcached();
$m->addServer('127.0.0.1',11211);
/*一次性添加多条数据*/
$data = array(
'key' => 'value',
'key2' => 'value2',
);
$m->setMulti($data,0);
/*一次性读取多个*/
$res = $m->getMulti(array('key','key2'));
print_r($res);
运行结果为
Array ( [key] => value [key2] => value2 )
$m = new Memcached();
$m->addServer('127.0.0.1',11211);
/*一次性添加多条数据*/
$data = array(
'key' => 'value',
'key2' => 'value2',
);
$m->setMulti($data,0);
/*一次性删除多个*/
$m->deleteMulti(array('key','key2'));
echo $m->get('key');
输出结果为空
$m->deleteMulti(array('key','key2'));
echo $m->getResultCode();
输出为0
00 = MEMCACHED_SUCCESS
01 = MEMCACHED_FAILURE
更多返回结果请参照http://php.net/manual/zh/memcached.getresultcode.php
$m->deleteMulti(array('key','key2'));
echo $m->getResultMessage();
输出结果为:SUCCESS
上述只是简单介绍了一些常用的有关Memcache的操作。
如果想了解更多,可以到http://php.net/manual/zh/book.memcached.php