gpt4 book ai didi

redis - 在 Redis 中处理多个列表的最佳方式?

转载 作者:可可西里 更新时间:2023-11-01 11:22:13 25 4
gpt4 key购买 nike

我正在构建一个网站,允许用户查看文章并进行一些事件(投票、评论...)。我使用 MySql 作为主要存储。为了提高性能,我正在考虑使用Redis (4.x) 来处理一些 View 事件,例如top/hot articles...

我将使用一个名为 topAticleSortedSet 的 sortedSet 来存储热门文章,并且每当用户对某篇文章进行投票或评论时,该集合将经常更新。

由于每个用户都会登录并关注一些主题,我还需要根据用户关注的主题过滤和显示topArticleSortedSet中的文章。

当然还有滚动分页。

出于这些原因,我打算为每个用户创建一个 topArticleSortedSet,这样每个用户都会有一个独立的列表。但我不知道这是否是最佳做法,因为我的网站可能有数百万登录用户访问(那么它将有数百万组,每个组大约有 1000 篇文章)。

谁能给我一些建议吗?

最佳答案

我认为您应该保留一个 Set,并为每个用户过滤它,而不是为每个用户设置一个 Set。原因如下:

我的理解是每次有人阅读一篇文章时都必须更新 Set(可能增加计数器)。

假设您有 n 个用户,每个用户每天阅读 p 篇文章。所以你必须每天更新 Set n*p 次。

在“单个”集合选项中,当有一篇文章被阅读时,您只需要更新一个集合。所以它总共进行了 n*p 次更新。在“每个用户一组”架构中,您将需要进行 n*p*n 次更新,这要大得多。

当然,过滤单个集会花费您一些时间,比访问为一个用户设计的集要长。但平均而言,我猜它花费的时间比 n 次操作要少得多。 基本上,您需要知道哪个更快:过滤一个 Set 还是更新 n 个 Set?

关于redis - 在 Redis 中处理多个列表的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20821399/

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