一尘不染

Redis插入顺序混乱还是排序奇怪?

redis

我有一些这样写的代码:

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

模型在foreach(alpha,绿色,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"}

有谁知道为什么我的订单被忽略/覆盖?我是否缺少有关Redis工作原理的信息?“行”是否像MySQL数据库中的自动递增ID,如果是的话,它如何在“
alpha”之前获得“ zed”?

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


阅读 505

收藏
2020-06-20

共1个答案

一尘不染

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

2020-06-20