Javascript Redis数据库设计不当

Javascript Redis数据库设计不当,javascript,node.js,redis,Javascript,Node.js,Redis,我有一个node.js API,负责3件事: 登记买家 找一个有身份证的买家 根据某些标准找到匹配的买方报价 细节 因为我是Redis的新手,所以我开始实施时是这样的: JSON.stringify买方并将其与SET一起存储 将所有买家的报价存储为有序集(这是针对第三个端点的,它需要具有最高值的报价)-该集包含表示哈希名称的字符串 然后,该散列存储表示具有特定值的集合名称的字符串,以及满足这些条件后用户将重定向到的位置(buyer1_设备、buyer1_小时等) 现在,问题是: 我需要开始工

我有一个node.js API,负责3件事:

  • 登记买家
  • 找一个有身份证的买家
  • 根据某些标准找到匹配的买方报价
细节

因为我是Redis的新手,所以我开始实施时是这样的:

  • JSON.stringify买方并将其与SET一起存储
  • 将所有买家的报价存储为有序集(这是针对第三个端点的,它需要具有最高值的报价)-该集包含表示哈希名称的字符串
  • 然后,该散列存储表示具有特定值的集合名称的字符串,以及满足这些条件后用户将重定向到的位置(buyer1_设备、buyer1_小时等)
  • 现在,问题是:

    我需要开始工作。正如我提供的GitHub页面所述,我有3个参数:时间戳、设备和状态。我必须浏览所有的集合,找到合适的位置来重定向用户。位置存储在散列中,但我必须浏览所有集合。既然这可能是一个糟糕的实现,那么它在哪里出了问题呢

    • 请注意,这是一个redis问题,而不是节点问题。我需要关于如何在Redis中实现这一点的说明,然后我将准备在Node中编写代码

    提前感谢您

    Redis的第一条规则:按照您想要的方式存储数据

    要回答
    /route
    查询,您需要对买家报价中的两个属性进行“过滤”——状态和设备。给猫剥皮的方法不止一种,所以这里有一种:使用多个排序集

    每一个这样的集合键名可以如下所示:
    (因此git中提供的示例将添加到键
    桌面:CA

    要查询,请使用路由的参数组合密钥名称,然后定期查找得分最高的报价,并在哈希中解析买家的详细信息


    现在去找那份工作

    帮助你完成一个编码挑战难道不被视为促进作弊吗?@ItamarHaber我可以自由咨询任何人,他们是这么说的。这不是一个挑战,更多的是一份工作的入门问题。Okie dokey-ethics猝不及防,写下我希望是有用的答案。这正是我所需要的。所以,我的设计和我想象的一样糟糕。所以做很多套也没关系吧?我来自关系数据库,所以这对我来说很奇怪。这是合理的——用你的常识;)我也是从那条路来的,所以我知道你的意思。Redis的第二条规则:非规范化不是一个肮脏的词(在本例中,您甚至没有这样做)。