zoukankan      html  css  js  c++  java
  • 视频点赞功能以及记录观看次数的设计

    最近博主参与了一个需求,类似于抖音小视频。本人独立负责这个需求中的点赞功能、记录视频观看记录。因为是独自负责的,从0到1开发,历时三天开发完成。开发过程中感悟良多,对此决定记录下。

    首先是针对该功能的技术方案。楼主想了三种方案:

    方案1:

    强依赖于redis,将点赞数,点赞的记录、观看数实时存储在redis,同时创建一个set集合,维护点赞数的key和点赞记录的key。然后定时任务定时的将set集合的key的数据持久化到mysql。

    方案2:

    使用redis的incr、decr命令来记录点赞和取消点赞的操作的点赞数。并且redis中存储每个用户的点赞记录。将点赞操作和记录观看数的操作做出异步的任务。将异步任务提交到线程池中,然后异步任务将点赞持久化到mysql。

    方案3:

    使用redis的incr、decr命令来记录点赞和取消点赞的操作的点赞数。并且redis中存储每个用户的点赞记录。然后,使用MQ将点赞持久化到mysql。

    方案 方案1   方案2   方案3
    优点     数据准确性较差 实时/高效 实时/高效/能保证落库准确性
    缺点 需考虑定时任务的时间设置,比较麻烦/缓存一致性问题 异步任务存在消费顺序问题/缓存一致性问题 使用mq需考虑消费失败问题/缓存一致性
  • 相关阅读:
    git push要输入密码问题
    excel换行
    React的diff算法
    https的通信过程
    一道面试题的分析
    Mac将应用拖入Finder工具栏
    React获取组件实例
    Warning: Received `false` for a non-boolean attribute `xxx`.
    warning: React does not recognize the xxx prop on a DOM element
    webpack开发模式和生产模式设置及不同环境脚本执行
  • 原文地址:https://www.cnblogs.com/LcMiho/p/11734524.html
Copyright © 2011-2022 走看看