我是靠谱客的博主 漂亮小刺猬,最近开发中收集的这篇文章主要介绍php粉丝关注功能,Redis实现用户关注功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近项目要涉及到粉丝关注问题,权衡再三还是使用Redis实现比较方便,使用Redis的有序集合可以做到根据关注的时间有序的取出列表,假设我的ID是me,别人的ID是other.

添加关注

添加关注分为两步:

将对方id添加到自己的关注列表中;

shell Redis::ZADD("me:follow", time(), other)

将自己的id添加到对方的粉丝列表中:

shell Redis::ZADD("other:fans", time(), me)

取消关注

取消关注同样分为两步:

将对方id从自己的关注列表中移除;

shell Redis::ZREM("me:follow", other)

将自己的id从对方的粉丝列表中移除:

shell Redis::ZREM("other:fans", me)

关注列表

查看我的关注列表:

shell Redis::ZRANGE("me:follow", 0 , -1)

查看别人的把id换掉就可以

shell Redis::ZRANGE("other:follow", 0 , -1)

粉丝列表

查看我的粉丝列表:

shell Redis::ZRANGE("me:fans", 0 , -1)

查看别人的把id换掉就可以

shell Redis::ZRANGE("other:fans", 0 , -1)

人物关系

我单向关注他

我单向关注他,要同时满足两个条件:1、我的关注列表中有他(或他的粉丝列表中有我);2、我的粉丝列表中没有他(或他的关注列表中没有我)。

shell Redis::ZSCORE("me:fans", other) #未返回分数

shell Redis::ZSCORE("me:follow", other) #返回分数

他单向关注我

他单向关注我,要同时满足两个条件:1、我的关注列表中没有他(或他的粉丝列表中没有我);2、我的粉丝列表中有他(或他的关注列表中有我)。

shell Redis::ZSCORE("other:fans", me) #未返回分数

shell Redis::ZSCORE("other:follow", me) #返回分数

是否互粉

我和某人是否互粉,要同时满足两个条件:1、我的关注列表中有他(或他的粉丝列表中有我);2、我的粉丝列表中有他(或他的关注列表中有我)。同时成立才为互粉。

shell Redis::ZSCORE("me:fans", other) #返回分数

shell Redis::ZSCORE("me:follow", other) #返回分数

数量相关

我的关注数

shell Redis::ZCARD("me:follow"); #返回数量

我的粉丝数

shell Redis::ZCARD("me:fans"); #返回数量

排序取出所有的人

根据关注的时间倒叙取出用户的id

shell Redis::ZREVRANGE("me:fans", 0, -1, TRUE); #倒序取值

根据关注时间顺序取出用户的id

shell Redis::ZRANGE("me:fans", 0, -1, TRUE); #顺序取值

最后

以上就是漂亮小刺猬为你收集整理的php粉丝关注功能,Redis实现用户关注功能的全部内容,希望文章能够帮你解决php粉丝关注功能,Redis实现用户关注功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部