程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 批量獲取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_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比較取出差,再去一一設置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved