如何知道用户是否是使用Elasticsearch和Redis的朋友?

问题描述 投票:-1回答:1

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

elasticsearch search redis search-engine
1个回答
0
投票

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

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

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

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

并且当您想识别用户20是否是用户30的朋友时,只需生成密钥并检查它是否在Redis上就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.