文章目錄

最近从公司APP分享出去的一篇文章,访问量暴增,而访问计数直接访问的数据库,数据库产生行级锁,许多访问超时。

1
News.objects.filter(pk=self.object.id).update(view_num=F('view_num') + 1)

临时把访问计数去掉。之后找到Redis计数器。在访问文章时,使用incr自增。只是在访问文章列表时,如果对每篇文章都要读一次Redis会影响性能,于是只好做了延时处理,每个一段时间同步到数据库,并进行清零,等想到更好的解决办法再说。

清零时,最好不要使用set key 0这种用法,在多线程情况下会出问题,目前使用incrby key -view_num这种方式, 也就是减去目前Redis中浏览量的方式。

Redis确实是好东西,需要深入学习。

参考资料

打赏作者

文章目錄