批量获取memcache值并按key的顺序返回的实现代码

yipeiwu_com6年前PHP代码库
通过memcached的getMulti函数来批量获取如下15个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,

一台memcache时返回是正确的,在有多台memcache时就无法一一对应的按顺序返回。

这时需要使用Memcached::GET_PRESERVE_ORDER才能按顺序返回数据:
$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,

这其中,如果有没有命中的变量,那么$cas就起到作用了。$cas返回了命中的变量,遍历$cas取出已命中的变量组成数据,然后通过array_diff函数与$arr_id比较取出差,再去一一设置。

相关文章

shopex主机报错误请求解决方案(No such file or directory)

一、shopex主机环境 1、windows 2003 R2 2、iis6.0+php5.0以上 3、mysql5.0以上 如果有希望了解php环境搭配的,请查阅: windows200...

PHP结合jQuery实现找回密码

通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接...

dede3.1分页文字采集过滤规则详说(图文教程)续二

dede3.1分页文字采集过滤规则详说(图文教程)续二

稍微了解dede采集规则的朋友上篇内容完全可以略过,下面看看如何以静制动、以不变就万变地解决分页采集问题。二、采集新目标目标地址:1、http://www.tiansou.net/Htm...

php 静态变量的初始化

例如: class A { public $f1 = 'xxxx'; static public $f2 = 100; } 如果要将变量赋值为对象,那么只能在构造器中进行初始化,例如:...

PHP易混淆函数的区别及用法汇总

本文实例分析了PHP易混淆函数的区别及用法。分享给大家供大家参考。具体分析如下: 1.echo和print的区别 PHP中echo和print的功能基本相同(输出),但是两者之间还是有细...