2016-11-16 96 views
3

我已經寫了一些像這樣的代碼:Redis插入順序不正常,還是奇怪地排序?

foreach ($models as $model) { 
    Redis::hset('model_App\ServiceModel', $model[$primaryKey], json_encode($model->toArray())); 
} 

的車型名稱的字母順序領域的foreach(α,綠色,捷思)

的數據,一旦加入到Redis的前有序,看起來是像這樣:

row | key | value 
1  490 {"service_id":490, "name":"zed"} 
2  489 {"service_id":489, "name":"alpha"} 
3  491 {"service_id":491, "name": "green"} 

有誰知道爲什麼我的排序被忽略/覆蓋?我是否錯過了Redis的工作原理? '行'就像一個MySQL數據庫中的自動遞增ID,如果是這樣 - 它如何在'alpha'之前變得'zed'?

這是我第一次'認真'使用它,我很欣賞我能得到的所有建議。

回答

1

Redis哈希無序 - 這是預期的行爲。如果需要排序,請查看使用Sorted Sets,SORT命令,或(最好)對客戶端中的數據進行排序。

+0

謝謝,那解釋了! – SoWizardly