透過memcached的getMulti函數來批次取得如下15個ID的值。
31639,33878,177410,9735,589,12076,25953,22447,15368,15358,33853,26658,26659,12477,1536666658>順序:
line_31639,line_33878,line_177410,line_9735,line_589,line_12076,line_25953,line_22447,line_15368,line_15358,line_33853_line_15358,line_33853_line_295,695,009,6957,0000 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_177410,line_12076,line_25953,153368,1536,00375,000,0753,0095,0000 🎜>這其中,如果有沒有命中的變量,那麼$cas就起到作用了。 $cas返回了命中的變量,遍歷$cas取出已命中的變量組成數據,然後通過array_diff函數與$arr_id比較取出差,再去一一設定。
以上就介紹了memcache 批量獲取memcache值並按key的順序返回的實現代碼,包括了memcache方面的內容,希望對PHP教程有興趣的朋友有所幫助。