gpt4 book ai didi

ruby - Redis 多个请求

转载 作者:可可西里 更新时间:2023-11-01 11:43:59 28 4
gpt4 key购买 nike

我正在编写一个使用 Redis 的非常简单的社交网络应用。

每个用户都有一个排序集,其中包含他们 Feed 中项目的 ID。如果我想显示他们的提要,我会执行以下步骤:

  1. 使用 ZREVRANGE 获取其 Feed 中项目的 ID
  2. 使用HMGET获取提要(每个提要项都是一个字符串)

但是现在,我还想知道用户是否喜欢某个提要项目。所以我有一个与每个提要项目相关联的集合,其中包含喜欢提要项目的用户的 ID。

如果我得到 15 个 feed 项,现在我必须对 Redis 执行额外的 15 个请求,以查明每个 feed 项当前用户是否评论过它(通过检查每个 feed 的每个集合中是否存在 id ).

所以这将需要 15+1 个请求。

在使用 Redis 时,这种类型的查询是否被视为“正常”?有没有更好的方法来构建数据以避免这么多请求?

我正在使用 redis-rb gem。

最佳答案

您可以轻松重构代码,通过使用管道(redis-rb 支持)将 15 个请求合二为一。

您使用第一个请求从排序集中获取 ID,然后使用它们根据这些结果(使用管道)获取您需要的许多键

使用这种方法,您总共应该有 2 个请求,而不是 16 个,并使您的代码非常简单。

作为替代方案,您可以使用 lua 脚本并在一个请求中获取所有内容。

关于ruby - Redis 多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17275623/

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