如何将页面访问次数同步到数据库中?

使用了 awssat/laravel-visits 扩展之后,如何实现定期将 Redis 中的数据同步到 topics 表的 view_count 字段中呢?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
liyu001989
最佳答案

问题是

  1. 如何获取有人访问过的数据?

    模型每天都会有人访问,假设是获取当天访问数据变动的话题,可以利用一下 period 和 top。

  2. 减少服务器压力?

    100 条数据遍历然后保存,有压力?是要一次取出的数据不多,用完释放就没什么压力。写入太多可以一批处理写入一次,利用 mysql 的 case 和 when。

但是为什么要把这个数据存进去呢?redis 可以持久化方案,数据不会丢 。为了统计和搜索吗?

5年前 评论
讨论数量: 6
liyu001989

我们既然能获取到统计的数据,那么定时把数据写进去就行啊,cron。

5年前 评论

@liyu001989 我知道用 cron,,而且已经把逻辑写好了,就是不知道怎么获取 Redis 中统计过的 topics,临时的解决方案是取出数据库中所有的 topic,对 view_count 字段进行赋值,但这样做太暴力了,仅仅是100+的数据就已经感受到服务器的压力了。新手,能力有限,所以来求助。

5年前 评论
liyu001989

问题是

  1. 如何获取有人访问过的数据?

    模型每天都会有人访问,假设是获取当天访问数据变动的话题,可以利用一下 period 和 top。

  2. 减少服务器压力?

    100 条数据遍历然后保存,有压力?是要一次取出的数据不多,用完释放就没什么压力。写入太多可以一批处理写入一次,利用 mysql 的 case 和 when。

但是为什么要把这个数据存进去呢?redis 可以持久化方案,数据不会丢 。为了统计和搜索吗?

5年前 评论

@liyu001989 感谢解答,写入数据库就是为了能够进行统计和搜索。

5年前 评论
TigerLin

@doderic 兄弟,我有点没看明白 我有个文章展播,首页每日推荐一篇,有文章阅读统计,点开文章详情还有文章统计,redis的阅读数据如何在首页上展示呢,有啥好的意见

file

file

4年前 评论

@深入浅出 redis 的作用是用来存放数据,什么时候存入数据,什么时候读取数据看的是业务逻辑,你想在首页上显示阅读数据无非就是调用方法来读取数据,显示哪些数据,如何显示这些数据要看你自己的想法。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!