微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis 交集——Where 的类比

如何解决Redis 交集——Where 的类比

我有以下结构

using namespace std;

我需要做的事情:我将 user_id 的 item_id 数组作为参数,我需要检查它们是否已交付。 我在这里看到两种方法

  1. 我只存储 key:string在这种情况下,key 将是 user_id:item_id 和 value delivered_at。因此,当我拥有 item_id 数组时,我可以一致地查询所有 item_id(和一个网络请求)以返回每个 item_id 的 delivered_at(如果存在)。
  2. 第二种方法是为每个 user_id 存储一个 zset,key 为 user_id,zset 为 score:delivered_at 和 value:item_id.

为什么我不喜欢第一种方法 - 我无法轻松获取所提供用户的所有项目,这将非常少,下一个任务就是这个。

如果我可以将传入的 item_id 集与 zset 中的那些相交,那将是完美的。 据我所知 - 我可以相交集,但在 redis 中只有 2 个集,所以在我的情况下,我需要创建新的临时集,然后将它与 zset 中的一个相交。 第二种方法有另一种方法 - 我可以从 zset 中获取提供的用户的所有项目,然后在应用程序中相交集,但是我不喜欢这种方式,因为用户可能有数千次交付,而且它不是'传输几 MB 数据以检查 2 或 3 个交付的好主意。 是否有任何选项可以将 INCOMING 集与 Redis 中已经存在的集相交? 对于这种特定情况,是否有更好的方法来存储数据?我已经阅读了一些文章包括 redis 博客中的二级索引。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。