用 Redis 如何实现朋友圈点赞功能?

87 阅读1分钟

用 Redis 如何实现朋友圈点赞功能?

回答

1、功能分析
  • 首先,我们需要分析下朋友圈点赞需要有哪些功能

    1. 记录某个朋友圈的点赞数量,
    2. 支持点赞数数量的查看
    3. 支持点赞和取消点赞操作。
    4. 支持查看哪些人点过赞,
    5. 点赞的顺序是可以看得到的
2、实现思路
  • 数据结构上,我们可以采用Redis ZSet 来实现,
  • ZSET 的 KEY 就是这个具体的朋友圈的 ID
  • ZSET 的 value 表示点赞用户的 ID
  • ZSET 的 score 表示点赞的时间
3、具体实现
  1. 使用字符串存储每篇朋友圈的 ID,作为有序集合的 KEY

  2. 使用 ZSet 存储每篇朋友圈的点赞用户信息,其中 value 为点赞用户的 ID,score 为点赞时间的时间。

  3. 点赞操作

    将用户的 ID 添加到 ZSet 中,score 为当前时间。

    如果,用户已经点过赞,则更新其点赞时间。

  4. 取消点赞

    将用户的 ID 从有序集合中删除

  5. 查询点赞信息

    使用有序集合的 ZREVRANGEBYSCORE命令,

    按照 score(时间截)逆序返回 ZSet 的 value,即为点赞用户的 ID。

4、代码

image-20241218141142946