【问题标题】:Which Redis data structure would you recommend me?你会推荐我哪种 Redis 数据结构?
【发布时间】:2021-01-28 05:01:17
【问题描述】:

我正在尝试决定应该为 Redis 上的特定项目使用哪种数据结构。我们应该创建一个能够存储有关电话、电子邮件和 Whatsapp 消息(即日期、时间)的元数据的数据库,然后找出例如每个特定人在 5 月 14 日拨打的电话

问题是我对 Redis 还很陌生,所以我试图在哈希上存储关于一个人、电话、电子邮件和 whatsapp 消息的数据,如下所示: hmset person:1 name John phone_n 001 email "a@a" wpacc 100hmset call:1 date "5/14..."hmset email:1 origacc "a@a"... 等等。但我开始意识到,在查询我需要的数据时,这种方法对我没有帮助。

猜想我应该使用集合或排序集合,但我不知道如何将它们用于我的目的:我是否应该存储有关调用的数据,例如:sadd calls:originnum 001sadd calls:destnum 002?但是,我如何才能将原始电话号码与其呼叫目标电话号码的日期相关联?

如果您能指出我正确的方向,那将非常有帮助。提前致谢

【问题讨论】:

  • 嗨。欢迎来到 SO!您能否分享您希望对此类数据集进行的查询?
  • 嗨,当然。以下是一些示例: - 特定人员在特定日期拨打的电话 - 了解特定人员是否呼叫了另一个特定人员 - 将特定人员发送给另一个特定人员的消息返回 - 在特定日期被呼叫的每个人 -每个在特定日期打电话给某人的人希望它有所帮助! :)

标签: database redis nosql


【解决方案1】:

使用核心 Redis,您将走上正轨:

  • HASHES 存储核心数据
  • SET/SORTED SETS 存储某种索引。

这将要求您编写逻辑来查询数据并保持索引是最新的。

使用模块简化此操作

也就是说,使用 RedisGearsRediSearch 模块您可以简单地这样做。

我不会在这里做太多细节,因为我已经解释了如何查询值here。 (如果这还不够清楚,请告诉我,如果您认为需要,我会在此处添加更详细的回复)

查看RediSearch Tutorial,了解如何使用此模块轻松满足您的需求。

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 2013-08-20
    • 2010-10-16
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2013-06-25
    • 2017-10-10
    相关资源
    最近更新 更多