我有一些这样写的代码:
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”?
这是我第一次“认真”使用它,我感谢我能得到的所有建议。
Redis的哈希是无序的- 这是预期的行为。如果需要排序,请使用“排序集”,SORT命令或(最好)对客户端中的数据进行排序。
SORT