gpt4 book ai didi

database - 如何在 Redis 上实现像 Twitter 或 Facebook 中的用户提要

转载 作者:IT王子 更新时间:2023-10-29 06:05:52 25 4
gpt4 key购买 nike

我打算在 redis 上编写一个简单的新闻网站,并支持关注者。我无法想象如何像在 Twitter 中那样组织用户时间线。我阅读了有关 Retwis ( http://redis.io/topics/twitter-clone ) 的信息,但它的提要创建方法似乎很愚蠢。如果我想删除条目怎么办?我应该从关注者提要中删除所有条目引用。如果我已经不关注某些用户怎么办?

最佳答案

有几种方法可以利用一点想象力来攻击您所描述的内容,这里有一些示例可以解决您的问题:

What if I want to remove entries?

可以为每个帖子维护一个集合,例如 post:$postid:users,保存所有可能在其提要中包含该帖子的用户 ID;当要删除帖子时,只需从该集合中提取所有成员并遍历 ID 以将其从每个 uid:$userid:posts 集合中删除;说到这一点,您必须将最后一个变成一个集合,而不是像原始文章建议的那样,以便能够提取和删除单个项目,但这是微不足道的,逻辑非常相似。

What if I already do not follow some users?

当为每个单独的用户生成提要时,您必须迭代并读取每个 post:$postid 键,从中您可以访问作者的用户 ID;所以在显示帖子之前,你阅读了这个 id 并在 uid:$userid:following 集合中查找它,如果它在那里我们显示帖子,如果不存在我们从 uid 中删除它: $userid:posts 并且不显示它。

简而言之,为了在 Redis 中构建这种逻辑,您必须牢记以下内容:

  • 您将需要很多命令,但没关系,Redis 应该足够快,可以很好地处理它。
  • 数据会重复,不过没关系;对于具有关系 DBMS 背景的人来说,如果每个用户已经有一组用户的帖子,那么为每个帖子存储一组用户可能看起来很疯狂,但这是在像 redis 这样的非关系数据存储中建立关系的唯一方法。
  • 一般来说,在 Redis 中设计关系时会想到集合和有序集合。

使用 Redis,您可以自己做所有事情,但一旦您了解它,它实际上非常强大。

关于database - 如何在 Redis 上实现像 Twitter 或 Facebook 中的用户提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12357770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com