批量获取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 相关文章推荐
一段php加密解密的代码
Oct 09 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
Yii2简单实现多语言配置的方法
Jul 23 PHP
PHP实现文件上传功能实例代码
May 18 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
Laravel 5.5 异常处理 & 错误日志的解决
Oct 17 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 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为php增加openssl模块的方法
2011/06/14 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
js DOM模型操作
2009/12/28 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
Python3+Appium安装使用教程
2019/07/05 Python
Python 爬虫的原理
2020/07/30 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
建议书标准格式
2014/03/12 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Ajax实现三级联动效果
2021/10/05 Javascript
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android