PHP操作Memcached的方法汇总,批量获取memcache值并按key的顺序返回的实现代码
分类:微服架构

因而memcached的getMulti函数来批量获得如下17个ID的值。
31639,33878,177410,9735,589,12076,25953,22447,15368,15358,33853,26658,26659,12477,15366

 

$md->getMulti($arr_id);
回去的相继:
line_31639,line_33878,line_177410,line_9735,line_589,line_12076,line_25953,line_22447,line_15368,line_15358,line_33853,line_26658,line_26659,line_12477,line_15366,

memcached非关系型数据库安装、php中的memcache的强盛安装、以至php中的memcached的扩展安装能够参见:

一台memcache时重临是不利的,在有多台memcache时就不也许一一对应的按梯次再次来到。

当时必要选取Memcached::GET_PRESERVE_OSportageDE奥迪Q3能力按梯次再次来到数据:
$arrs = $mem->getMulti($arr_id, $cas, Memcached::GET_PRESERVE_ORDER);
归来的一一:
line_31639,line_33878,line_9735,line_589,line_22447,line_15358,line_33853,line_26658,line_177410,line_12076,line_25953,line_15368,line_26659,line_12477,line_15366,

(一)memcache扩展

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

#Key存在则更新值,不真实则设置k-v对。注:$var能够积存任何数据

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

#key荒诞不经的时候才增添

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

#更改存在的key值,不设有key则赶回错误

4、string Memcache::get ( string $key [, int &$flags ] )

array Memcache::get ( array $keys [, array &$flags ] )

#得到二个要么多少个值

5、bool Memcache::delete ( string $key [, int $timeout = 0 ] )

#剔除key元素,设置了timeout则有个别秒后去除

#【注意】有个别版本对应memcached使用timeout将会招致删除失利(0得以)

6、int Memcache::increment ( string $key [, int $value = 1 ] )

#key存在且能改换为数字,则加int;不然直接改换为value。当key不设有,则赶回false

7、int Memcache::decrement ( string $key [, int $value = 1 ] )

8、bool Memcache::flush ( void )

#一体要素失效

9、bool Memcache::connect ( string $host [, int $port [, int $timeout=1 ]] )

#接连memcache服务器,推行完脚本后会自动关闭(使用close能够积极关闭)

10、bool Memcache::close ( void )

#闭馆memcache的链接(那几个函数不会关闭持久化连接)

11、mixed Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )

#树立长久化连接

12、bool Memcache::addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback$failure_callback [, int $timeoutms ]]]]]]]] )

#扩展一台服务器到连接池,通过此办法张开的劳动,将会在剧本甘休的时候关闭或然主动关闭close

#利用此方式,互联网连接不肯定立时连接,而是等要求使用此服务器的时候,才会进展接二连三,由此固然加上海大学量的服务器到连接池也从未支付

参数:

$persistent   ``是否持久化,默认true

$weight   ``表示权重

$retry_interval   ``服务器连接失败时重试时间,默认为15秒,-1表示不重试

$status   调节此服务器是不是被标记为在线状态(就算连接战败,连接池少了两个服务器,会影响原来的分红算法)

$failure_callback   ``连接失败后执行的函数(在故障转移前执行),包含两个参数,失败主机host和port

13、array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

#getExtendedStats(卡塔尔(قطر‎重返叁个二维关联数据的服务器总括信息

#getExtendedStats(‘slabs’卡塔尔获取到各种服务器上运动slabs分块的id

#getExtendedStats('cachedump', $slabid, $limit卡塔尔(قطر‎获取每一个slab里面缓存的项

参数:

#type   期望抓取的计算音信连串,能够运用的值有{reset, malloc, maps, cachedump, slabs, items, sizes}

#slabid   用于与参数type一齐从钦赐slab分块拷贝数据,cachedump命令会完全占用服务器常常用于 相比较严俊的调养。

#limit   用于和参数type手拉手来安装cachedump时从服务端获取的实体条数。

14、int Memcache::getServerStatus ( string $host [, int $port = 11211 ] )

#回到叁个服务器的图景,0意味服务器离线,非0表示在线。

15、array Memcache::getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

#getStats()返回一个关乎数据的服务器总计音讯。同上

16、string Memcache::getVersion ( void )

#重回版本号

17、bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )

#拉开对于大值的全自动裁减

参数:

#threshold   调节多大值举行活动减少的阈值。

#min_saving   钦命经过压缩实际存款和储蓄的值的压缩率,帮衬的值必需在0和1里面。私下认可值是0.2表示25%压缩率

18、bool Memcache::setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback $failure_callback ]]]]] )

#用于运转时改进服务器参数

#参数同上

 

这在那之中,假若有未有命中的变量,那么$cas就起到职能了。$cas再次回到了命中的变量,遍历$cas收取已命中的变量组成数据,然后经过array_diff函数与$arr_id相比较抽出差,再去各类设置。

(二)memcached扩展

1、Memcached::__construct ([ string $persistent_id ] )

#暗许情形下,Memcached实例在乞求截至后会被毁灭。但能够在开马上经过persistent_id为各种实例钦赐独一的ID,在伸手间分享实例。全体通过同样的persistent_id值创建的实例分享同二个三番两遍。

<?php
# ``创建一个普通的对象
$m1 ``= new ``Memcached``();
echo ``get_class``(``$m``);

/* ``创建持久化对象 */
$m2 ``= new ``Memcached``(``'story_pool'``);
$m3 ``= new ``Memcached``(``'story_pool'``);

# ``现在$m2和$m3共享相同的连接 ,可以使用isPresistent进行检测
?>

2、public bool Memcached::addServer ( string $host , int $port [, int $weight = 0 ] )

#追加钦定服务器到服务器池中,这时不会建设布局与服务端的接连几日

3、public bool Memcached::addServers ( array $servers )

#添增加台服务器到服务池中

4、public bool Memcached::cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )

#实行三个"检查并设置"的操作,它仅在日前客户端最终一遍取值后,该key 对应的值未有被其余顾客端改进的处境下, 手艺够将值写入。通过cas_token参数举办自己商酌

5、public bool Memcached::casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )

#钦定服务器,同上

#【$server_key也是一个味如鸡肋的key, *ByKey种类接口的办事历程是: 首先, 对$server_key进行hash, 得到$server_key应该积累的服务器, 然后将相应的操作在 $server_key所在的服务器上实行】

6、public bool Memcached::set ( string $key , mixed $value [, int $expiration ] )

#将value值(值能够是别的有效的非能源型php类型)存到key下

7、public bool Memcached::setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

#内定服务器,同上

8、public bool Memcached::setMulti ( array $items [, int $expiration ] )

#积攒八个成分

#$items     array(‘key’=>’value’)

9、public bool Memcached::setMultiByKey ( string $server_key , array $items [, int $expiration ] )

#钦点服务器,同上

10、public bool Memcached::add ( string $key , mixed $value [, int $expiration ] )

#向二个新的key上边扩充多少个要素,key存在则退步

11、public bool Memcached::addByKey ( string $server_key , string $key , mixed$value [, int $expiration ] )

#在钦定服务器上的一个新的key下扩大一个元素

12、public bool Memcached::touch ( string $key , int $expiration )

#为key设置新的过期时间

13、public bool Memcached::touchByKey ( string $server_key , string $key , int $expiration )

#为钦赐服务器中的key设置过期时间

14、public bool Memcached::append ( string $key , string $value )

#向业已存在的因素后扩展value参数对应的字符串值

注意:如果Memcached::OPT_COMPRESSION常量开启,那么些操作会失利,并引发三个警报,因为向压缩数量后扩大数据恐怕会招致解压不了。

<?php

$a = new Memcached();

$a->addServer('192.168.95.11', 11211);

#$a->addServer('192.168.95.11', 11210);

#$a->setOption(Memcached::OPT_COMPRESSION, false);

$b=$a->append('e','popop');

echo "<pre>";

print_r($b);

echo "</pre>";die;

?>

图片 1

15、public bool Memcached::appendByKey ( string $server_key , string $key , string $value )

#向内定服务器已经存在的成分后增添value参数对应的字符串值

16、public bool Memcached::prepend ( string $key , string $value )

#向一个已存在的要素后面追加数据

17、public bool Memcached::prependByKey ( string $server_key , string $key , string $value )

#向钦命服务器已经存在的要素前扩大value参数对应的字符串值

18、public bool Memcached::replace ( string $key , mixed $value [, int $expiration ] )

#轮番已存在key下的因素

19、public bool Memcached::replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

#交替钦点服务器的key下的因素

20、public int Memcached::decrement ( string $key [, int $offset = 1 ] )

#减小数值成分的值

#不设有key重临错误、减到小于0结果为0、成分不是数值以0对待

21、public int Memcached::decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

#点名服务器减小数值成分的值,不设有的key则始于化为0

22、public int Memcached::increment ( string $key [, int $offset = 1 ] )

#充实数值元素的值

23、public int Memcached::incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

#同上

24、public bool Memcached::delete ( string $key [, int $time = 0 ] )

#剔除三个因素

#安装时间后,评释在time时间后才删除,在此段时光内get、add、replace命令对该key都船到江心补漏迟。

25、public bool Memcached::deleteByKey ( string $server_key , string $key [, int $time = 0 ] )

#同上

26、public bool Memcached::deleteMulti ( array $keys [, int $time = 0 ] )

#除去多少个key

27、public bool Memcached::deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] )

#同上

28、public bool Memcached::flush ([ int $delay = 0 ] )

#让具有缓冲区的多少失效

29、public mixed Memcached::get ( string $key [, callback $cache_cb [, float &$cas_token ]] )

#搜索三个因素

#$callback     回调函数,未有$key之值时,将会调用这么些函数,会传播多少个参数memcache对象、key、引用传递变量的重回值(true时回去)

#$cas_token     合作cas使用。同多个顾客端最终叁个get将会变卦四个陆十个人独一标志符存款和储蓄,然后使用cas来查阅改善,借使在这进程中被其它顾客端改革则,重回false

30、public mixed Memcached::getByKey ( string $server_key , string $key [, callback $cache_cb [, float &$cas_token ]] )

#从一定的服务器检索元素

31、public mixed Memcached::getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )

#搜求多少个成分,提供$cas值,则加多cas值

#$flags     只能为Memcached::GET_PRESERVE_O安德拉DEPAJERO,有限支持重返的key的种种和呼吁时同样。

32、public array Memcached::getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )

#从一定服务器检索三个成分

33、public array Memcached::getAllKeys ( void )

# Gets the keys stored on all the servers

34、public bool Memcached::getDelayed ( array $keys [, bool $with_cas [, callback $value_cb ]] )

#向劳动器端哀告keys,那一个措施不会等待响应而是立时回去bool,搜罗结果使用fetch、fetchAll

#$with_cas     true时,则象征还要记录cas值

#$value_cb     ``结果回调函数处理

35、public bool Memcached::getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callback $value_cb ]] )

#从钦赐服务器中号令三个keys

36、public array Memcached::fetch ( void )

#从最终壹遍呼吁中抓取下一个结实。

37、public array Memcached::fetchAll ( void )

#抓取全部盈余的结果

38、public mixed Memcached::getOption ( int $option )

#收获Memcached的选项值

# OPT_*行云流水常量中的一个。

39、public bool Memcached::setOption ( int $option , mixed $value )

#设置叁个memcached选项

40、public bool Memcached::setOptions ( array $options )

#安装三个memcached选项

41、public int Memcached::getResultCode ( void )

#归来最终一遍操作的结果代码

42、public string Memcached::getResultMessage ( void )

#回到最后一回操作的结果描述音信

43、public array Memcached::getServerByKey ( string $server_key )

#获得key所映射的服务器消息

44、public array Memcached::getServerList ( void )

#获取服务器池中劳动器表

45、public array Memcached::getStats ( void )

#得到服务器池中的总括新闻

46、public array Memcached::getVersion ( void )

#赢得服务器池中有着服务器版本消息

47、public bool Memcached::isPersistent ( void )

#测量试验服务器是或不是永恒连接

48、public bool Memcached::isPristine ( void )

#测量试验memcache是还是不是近些日子创造的

49、public bool Memcached::quit ( void )

#关门连接

50、public bool Memcached::resetServerList ( void )

#重新复苏设置全体服务器的服务器服务音讯

51、public void Memcached::setSaslAuthData ( string $username , string $password )

#Set the credentials to use for authentication

 

(以上是和蔼在参谋手册学习memcached的时候,收拾的笔记,顺便也将它贴出来吧,若有不足只怕失实的地点请各位建议哈)

作者:那一叶随风

 

本文由10bet手机官网发布于微服架构,转载请注明出处:PHP操作Memcached的方法汇总,批量获取memcache值并按key的顺序返回的实现代码

上一篇:sphinx增量索引的一个问题,sphinx增量索引 下一篇:memcache和memcached模块安装应用,php模块memcache和memcached区别分析
猜你喜欢
热门排行
精彩图文