批处理视频视图到 redis 而不是直接到数据库

batch video views to redis instead of directly to the db

想法是使用 INC/HINCRBY 将视频观看计数器从直接插入数据库移动到 Redis,并且,每 x 秒获取一批它们并一次性插入到分贝。在我看来,有 2 个选项:

  1. 为每个 ID 设置密钥 INC
  2. 使用散列和HINCRBY

正如我所见,这两种方法都有一个缺点 - 没有 POP/ 原子命令来获取和重置视图计数器。这让我看到了排序交易 - 管道或 LUA 的 GET + DEL 倍批量大小..

这些是我唯一的选择吗?有更好的选择吗?最佳做法是什么?

顺便说一句,也许这是针对不同的主题,但我需要相同的日期逻辑而不是计数器(最后激活..),所以最好对两者都有一个逻辑。

我们决定实现它的方式是将所有更新推送到一个列表,并每隔 x 秒将它们弹出到一个事务中。改进是当前方法的 10 倍,每个方法本身就是一个事务。

尝试聚合计数器并稍后从中生成更新太麻烦了。