按值查找键

Ali*_*Ali 25 redis

我想要实现的想法是一个id表.基本上它有结构(user_id,lecturer_id),其中user_id引用我的User表中的主键,lecturer_id引用我的Lecturer表的主键.

我想在Redis的实现这一点,但如果我设置的关键是用户的主ID,当我尝试运行就像一个查询与讲师id来获取所有的记录= 5,因为讲师不是关键,但是我不会能够在O(1)时间到达它.

我如何形成像上面提到的id表那样的结构,或者Redis不支持?

Mah*_*ahn 31

您在使用redis时快速学到的一点是,您可以根据访问需求设计数据结构,特别是在涉及关系时(毕竟它不是关系数据库)

正如您已经注意到的那样,无法通过"值"搜索O(1)时间复杂度,但是有一些方法可以使用redis来描述您所描述的内容.这是我建议的:

  • 正如您所做的那样,按用户ID(例如哈希)存储您的用户数据.
  • 为每个讲师ID添加一个附加集,其中包含与相关讲师ID相对应的所有用户ID.

这可能看起来像复制关系的数据,因为您的用户数据必须存储讲座ID,而您的讲座数据将存储用户ID,但如果要建立关系,则需要支付(微小的)价格. - 像redis这样的关系数据存储.实际上,这很有效; 内存很少是小型数据集的瓶颈(想想成千上万的ID).

为了更好地了解人们如何使用redis为关系建模应用程序,我建议阅读简单的Twitter克隆的设计和实现以及Lamernews的源代码,这两者都是由redis作者Salvatore Sanfilippo编写的.