【问题标题】:How to know if user is a friend using elasticsearch and redis?如何知道用户是否是使用 elasticsearch 和 redis 的朋友?
【发布时间】:2019-12-21 05:29:23
【问题描述】:

我在 Elasticsearch 中有用户数据,在 Redis 中有每个用户的朋友作为 ZSET。客户端应用程序可以从弹性搜索其他用户,但我想显示搜索到的用户是否是朋友。在将用户返回客户端之前使用 EXISTS 检查 ZSET 中的用户密钥,然后显示用户是否是朋友,这是否是一种好方法。或者是否有完全不同的方法来做到这一点。在 ZSET 中检查搜索用户也是一项昂贵的操作。什么是可扩展且高效的方法。

【问题讨论】:

  • 可以添加示例代码吗?还是添加你的结构?

标签: elasticsearch search redis search-engine


【解决方案1】:

这取决于用户的平均好友数。

如果平均值较低(可以说小于 300),您可以使用当前的解决方案,这很好。

但如果平均值更多,您可以为用户之间的每个关系设置一个唯一键,如下所示:

set user-10:friend-of:user-11 true
set user-x:friend-of:user-y true

当你想识别用户 20 是否是用户 30 的朋友时,只需生成密钥并检查它是否存在于 Redis 上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2013-06-12
    • 2016-07-23
    • 2020-06-30
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多