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

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

时间: 2024-08-31 15:55:58

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

批量获取memcache值并按key的顺序返回的实现代码_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_15

php array_reverse 以相反的顺序返回数组实例代码

php array_reverse函数返回一个单元顺序相反的数组,该函数有两个参数,第一个参数表示需要处理的数组,第二个参数可选,规定是否保留原始数组的键名.本文章通过实例向大家讲解array_reverse函数的使用方法.需要的码农可以参考一下. array_reverse函数基本语法: array array_reverse ( array $array [, bool $preserve_keys = false ] ) array_reverse() 接受数组 array 作为输入并返回

播放地址-有研究过PPTV视频地址获取的吗?KEY值算法问题

问题描述 有研究过PPTV视频地址获取的吗?KEY值算法问题 搞了很久,网上的算法都过期了,求最新的额!头疼++++++++ 解决方案 我这有dex,文件会反编译的大神可以帮我下吗?

javascript使用for循环批量注册的事件不能正确获取索引值的解决方法_javascript技巧

本文实例讲述了javascript使用for循环批量注册的事件不能正确获取索引值的解决方法.分享给大家供大家参考.具体分析如下: 可能不少朋友会遇到一个问题,那就是当使用for循环批量注册事件处理函数,然后最后通过事件处理函数获取当前元素的索引值的时候会失败,先看一段代码实例: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name=&q

应用-这个时间要怎样批量获取,引用的是一个时间插件

问题描述 这个时间要怎样批量获取,引用的是一个时间插件 解决方案 你是引用的一个时间插件,但是你在时间框里获取到的时间是要放在你前面的标签框中的;如果你的标签框name相同,在后台则要一个数组来收取这个页面传递的值; 这样你上面的四个时间都会传到这个数组里的;这些日期值是以字符串的形式传到后台的,所以你在后台使用时,应该根据自己的需要转换一下类型. 解决方案二: 1.前端批量获取使用Jquery选择器就可以做到. 2.若要将获取到的数据传递到后端,建议采用json数组的格式进行传递,后端采用一个

python实现批量获取指定文件夹下的所有文件的厂商信息_python

本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import pefile import codecs, sys import wx import struct #输出中打印Unicode字符 #sys.stdout = codecs.lookup('utf-8')[-1](sys.stdout) def addToDict(theDict,PEfile_Pa

获取checkbox值的几种方法

比如你的input是这样:  代码如下 复制代码 <input type="checkbox" name="menu[1]" value="1">1 <input type="checkbox" name="menu[2]" value="2">2 <input type="checkbox" name="menu[3]&quo

微信公众平台增加批量获取用户基本信息接口

为了帮助开发者提高效率,微信公众平台的用户管理接口中,新增了批量获取用户基本信息的接口.   同时,为了保障公众号第三方平台的业务运营,该接口已放入用户管理权限集中.只要公众号将该权限集授权给第三方平台(包括历史授权的公众号),第三方平台就可以帮助它调用该接口. 获取用户基本信息(UnionID机制) 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众 号,同一用户的openid不同).公众号可通过本接口来根

批量获取DataGrid控件模板列中的数据

datagrid|datagrid控件|模板|数据 批量获取DataGrid控件模板列中的数据 在DataGrid中一般只能单个获取每一行的数据,若要批量获取DataGrid控件中的数据必须对每一个模板列的控件进行扫描,获取其中的数据.我本想做的程序是根据不同的行数,由用户一次输入若干数据,提交后系统自动获取批量数据的程序.以下程序简单表达了需要实现的功能 test.aspx .......... <asp:DataGrid id="dgResult" runat="s