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


Posted in PHP onJune 14, 2011

通过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比较取出差,再去一一设置。

PHP 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
PHP设计模式之策略模式原理与用法实例分析
Apr 04 PHP
thinkPHP5框架接口写法简单示例
Aug 05 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
PHP数组基本用法与知识点总结
Jun 02 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 #PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 #PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 #PHP
php学习笔记 类的声明与对象实例化
Jun 13 #PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 #PHP
php学习笔记 数组的常用函数
Jun 13 #PHP
PHP中的函数嵌套层数限制分析
Jun 13 #PHP
You might like
PHP通用检测函数集合
2006/11/25 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
ie focus bug 解决方法
2009/09/03 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
vue观察模式浅析
2018/09/25 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
python读写csv文件方法详细总结
2019/07/05 Python
python对文件的操作方法汇总
2020/02/28 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
预备党员思想汇报范文
2013/12/29 职场文书
社会实践感言
2014/01/25 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
文明餐桌活动方案
2014/02/11 职场文书
小学入学感言
2015/08/01 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers