1、新增点赞; sadd pub:msgid 点赞用户id1 点赞用户id2
2、取消点赞;srem pub:msgid 点赞用户id
3、展示所有点过赞的用户 smembers pub:msgid
4、点赞用户数统计,就是常见的待点赞的红色数数字 scard pub:msgid
5、判断某个朋友是否对楼主点过赞, sismember pub:msgid 用户id
微博好友关注社交关系
共同关注的人
sadd s1 1 2 3 4
sadd s2 2 3 6 8
sinter s1 s2
共同关注:我去某人的微博,马上获取和某人共同关注的人
我关注的人, 也关注了他(大家爱好相同)
我关注了华为余承东, 余承东也关注了张召动, 我和余总有共同的爱好
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
sismember s1 3
sismember s2 3
QQ内推可能认识的人
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
// 共同好友
sinter s1 s2
// 差集
sdiff s1 s2
sdiff s2 s1
zset 有序集合
常用命令
1、 向有序集合中添加一个元素和该元素的分数
2、 添加元素
ZADD key score member [score member ...]
3、 按照元素分数从小到达的顺序返回索引从 strat 到 stop 之间的所有元素
zrange key start stop [WITHSORES]
4、获取元素的分数
zscore key member [member ...]
5、删除元素
zrem key member [member ...]
6、 获取指定分数范围的元素
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
7、增加某个元素的分数
zincrby key increment member
8、 获取集合中元素的数量
zcard key
9、获得指定分数范围内的元素个数
zcount key min max
10、按照排名范围删除元素
zremrangebyrank key start stop
11、获取元素的排名
- 从小到大
zrank key member
- 从大到小
zrevrank key member
应用场景
1、更具商品销售对商品进行排序显示
思路:定义商品销售排行榜(sorted set 集合),key 为 goods:sellsort
, 分数为商品销售数量。
商品编号 1001 的销量是 9 , 商品编号 1002 的销量是 15
zadd goods:sellsort 9 1001 15 1002
有一个顾客又买了 2 件商品 1001 , 商品编号是 1001 数量增加 2
zincrby goods:sellsort 2 10001
求商品销量前 10 名
zrange goods:sellsort 0 10 withscores
2、 抖音热搜
1、点击视频
ZINCRBY hotavi:20220203 1 八百
ZINCRBY hotavi:20220203 15 八百 2 花木兰
2、展示当日排行前 10 条
zrevrange hotavi:20220203 0 9 withscores