Redis多个集合取交集,如何提高性能

我们都知道Redis的集合,是可以对多个集合取交集。例如社交好友推荐。

  • 如果只有几个集合,或者几十个集合,我们可以拿当前人的关注集合,通过循环的方式,依次对其他的集合取交集。
  • 如果系统中存在几十万,几百万的用户,每一个用户关注的,都单独存一个集合,这样系统就会有上百万的集合。如果还是拿当前用户的集合通过循环的方式,依次对其他的集合取交集。这种效率肯定是太低的,是否有其他的方式可优化。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5
巴啦啦
  1. 可以一次对多个集合进行取交集操作,应该不需要循环。
  2. 你试过大概需要多久吗?
  3. 如果试过了,还是觉得慢,试试这个方案。 将用户的关注列表,做成位图,最后做二进制运算,应该会快很多。
1年前 评论

没理解意思,你自己都说了“是可以对多个集合取交集”,那就应该是指ZINTERSTORE命令,都能一次性计算全部集合了,怎么还需要循环呢

ZINTERSTORE 返回共同关注 3 用户1_关注列表 用户2_关注列表 用户3_关注列表
1年前 评论
OnlyRed (作者) 1年前
OnlyRed (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!