Redis 插入乱序,或者排序奇怪?

SoW*_*dly 5 redis

我有一些代码是这样写的:

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

模型按 foreach 之前的名称字段按字母顺序排序(alpha、green、zed)

数据添加到 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"}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我的订单被忽略/覆盖?我是否遗漏了 redis 的工作原理?'row' 是否像 MySQL 数据库中的自动递增 id,如果是的话 - 它如何在 'alpha' 之前获得 'zed'?

这是我第一次“认真”使用它,我很感激我能得到的所有建议。

Ita*_*ber 3

Redis 的哈希值是无序的——这是预期的行为。如果需要排序,请考虑使用排序集命令SORT,或者(最好)在客户端中对数据进行排序。