想到这样的一个场景,你发了一个朋友圈,按照评论人评论的字数排序输出,字数越多表示越想想和你唠嗑。
场景1,一个人只能发一个评论的情况
使用redis的zset,假设需要排名前50个人,也就是Top50
思路
topk = 50
wordNum = len(user_id's comment)
ZADD id wordNum user_id
count = ZCARD id
if (count > topk) {
ZREMRANGEBYRANK 0, (topk - count)
}
ZRANGEBYscore id 0 -1 WITHscoreS
场景2,一个人能发多个评论的情况
使用redis的zset,但是需要记录所有的用户,唉,内存怎么搞?
假设需要排名前50个人,也就是Top50
思路
topk = 50
wordNum = len(user_id's comment)
ZINCRBY id wordNum user_id
ZRANGEBYscore id -topk -1 WITHscoreS
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。