这样做的目的是将视频视图计数器从直接插入db到redis INC
/ HINCRBY
,并且,每x秒获取一批数据并一次性插入数据库。在我看来,有两种选择:
按id设置密钥 INC
使用哈希和 HINCRBY
在我看来,这两种方法都有一个缺点,即没有 POP
/获取并重置视图计数器的原子命令。这使我看到了排序事务-管道或lua的 GET
+ DEL
乘以批量大小。。
这些是我唯一的选择吗?有更好的选择吗?最佳做法是什么?
顺便说一句,也许这是一个不同的主题,但我需要相同的逻辑日期,而不是计数器(最后激活..),所以它将是最好的一个逻辑都。
1条答案
按热度按时间798qvoo81#
我们决定实现它的方法是将所有更新推送到一个列表中,并每隔x秒将它们弹出到一个事务中。改进是当前方法的10倍,每个方法本身就是一个事务。
尝试聚合计数器并稍后从中生成更新太麻烦了。