当前位置: 首页 > 面试题库 >

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

谢高峯
2023-03-14
问题内容

我有一些这样写的代码:

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命令或(最好)对客户端中的数据进行排序。



 类似资料:
  • 问题内容: 我已经在Redis中使用排序集实现了排行榜。我希望具有相同分数的用户按时间顺序排序,即,第一名的用户应排名更高。当前,redis支持词典顺序。有没有一种方法可以覆盖它。手机号码被用作排序集中的成员。 我想到的一种解决方案是在移动电话号码之前添加时间戳,并维护散列以映射移动电话号码和时间戳。 这样,在任何情况下,我都可以通过从哈希添加前缀来获得给定用户的排名。 现在这不是我想要的。这将与

  • 我正试图按排序的顺序将一个元素添加到数组中。 5、6、7、9、11、0

  • 本文向大家介绍插入排序,包括了插入排序的使用技巧和注意事项,需要的朋友参考一下 这种分类技术与卡片分类技术相似,换句话说,我们使用插入分类机制对卡片进行分类。对于这项技术,我们从数据集中拾取一个元素,并移动数据元素以放置一个位置,以便将拾取的元素插入回数据集中。 插入排序技术的复杂性 时间复杂度:最佳情况为O(n),平均情况和最差情况为O(n ^ 2) 空间复杂度:O(1) 输入输出 算法 输入-

  • 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。 1. 算法步骤 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一

  • 1. 前言 本节内容是排序算法系列之一:插入排序,主要讲解了插入排序的主体思路,选取了一个待排序的数字列表对插入排序算法进行了演示,给出了插入排序算法的 Java 代码实现,帮助大家可以更好地理解插入排序算法。 2. 什么是插入排序? 插入排序(Insert Sort),是计算机科学与技术领域中较为简单的一种排序算法。 顾名思义,插入排序是通过不断插入待排序的元素完成整个排序过程。插入排序是一种很

  • 问题内容: 要将数据从一个数据库复制到具有相同架构的不同服务器中的另一个数据库,我计划使用C Sharp库中的SqlBulkCopy类。插入记录时,SqlBulkCopy是否将保持与数据表中相同的顺序? 示例:id是标识列。 服务器1,db1 服务器2,db1 步骤1: 步骤2:将SQL批量复制到server2 第3步:由于我们知道插入的记录数,因此我使用的是“前4名”。 第4步: 问题: res