可以是用redis的有序集合来实现。
在好友关注关系中,主要有以上三种状态,即:
我的粉丝(fans)
我的关注(follow)
互粉(mutual)
假设两个用户。用户ID分别为1和2,。
一、关注与粉丝
1、关注好友:
关注好友分为两个步骤。
第一步,将对方写入我的关注中。
第二步,将我写入对方的粉丝中。即:
ZADD 1:follow time(时间戳) 22、取消关注:
ZADD 2:fans time(时间戳) 1
取消关注也分为两个步骤
第一步,将对方从我的关注中移除。
第二步,将我从对方的粉丝中移除。即:
ZREM 1:follow 2
ZREM 2:fans 1
3、查看粉丝列表
ZRANGE 1:fans 0 -1
4、查看关注列表
ZRANGE 1:follow 0 -1
5、粉丝数量
ZCARD 1:fans
6、关注数量
ZCARD 1:follow
二、人与人之间的关系
1、我单向关注Ta。即我关注的Ta,但是Ta并没有关注我的
ZSCORE 1:follow 2 #true
ZSCORE 1:fans 2 #false
如果第一条成立,第二条不成立,说明我单向关注了对方(1关注了2,而1的粉丝中没有2,说明2并没有关注1)。
2、Ta单向关注我。即Ta关注我了,我并没有关注Ta
ZSCORE 1:follow 2 #false
ZSCORE 1:fans 2 #true
如果第一条不成立,第二条成立,说明对方单向关注了我(1没有关注2,而1的粉丝中有2,说明2关注了1);
3、互相关注。即我关注了Ta,Ta也关注了我
ZSCORE 1:follow 2 #true
ZSCORE 1:fans 2 #true
如果上面两条都成立,即说明互相关注了(1关注了2,并且1的粉丝中有2,说明2也关注1了)。
网友回复
有没有免费让ai自动帮你接管操作电脑的mcp服务?
mcp为啥用Streamable HTTP 替代 HTTP + SSE?
scratchjr有没有开源的前端html网页版本源代码?
多模态大模型能否根据ui交互视频来来模仿写出前端交互动画效果ui代码?
如何用阿里云oss+函数计算fc+事件总线EventBridge+消息队列+数据库+redis缓存打造一个高并发弹性系统?
阿里云函数计算 FC如何在海外节点搭建一个代理网络?
ai studio中gemini build的代码如何发布到github pages等免费网页托管上 ?
如何在cursor、qoder、trae中使用Claude Skills功能?
有没有不用u盘就能重装系统的开源工具?
python如何固定摄像头实时计算停车场停车位剩余数量?


