批量获取memcache值并按key的顺序返回的实现代码
作者:bea
通过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_
通过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比较取出差,再去一一设置。
有用 |
无用
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比较取出差,再去一一设置。
猜你喜欢
您可能感兴趣的文章:
- php 缩略图实现函数代码
- php中随机显示图片的函数代码
- 使用php shell命令合并图片的代码
- php whois查询API制作方法
- PHP字符编码问题之GB2312 VS UTF-8解决方法
- PHP读取网页文件内容的实现代码(fopen,curl等)
- php中获取指定IP的物理地址的代码(正则表达式)
- PHP学习笔记 (1) 环境配置与代码调试
- php开发过程中关于继承的使用方法分享
- php设计模式 Command(命令模式)
- php学习笔记 面向对象中[接口]与[多态性]的应用
- php smarty 二级分类代码和模版循环例子
- Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
- php中session_unset与session_destroy的区别分析
- 不重新编译PHP为php增加openssl模块的方法
- php的memcached客户端memcached
- PHP模块 Memcached功能多于Memcache
- php模块memcache和memcached区别分析
- sphinx增量索引的一个问题