Menu

8.4. 用户最后登录时间

最近活跃时间

接下来我们将在用户的个人中心头像下显示此用户的『最后活跃时间』。

在 Web 应用中,很多时候应用的效率瓶颈会出现在『数据库系统』中,所以作为一个合格的 Web 开发工程师,我们要严格控制好我们的数据库开销。之前我们已经对一些不需要频繁修改的数据做了缓存,如『活跃用户』数据和『资源推荐』数据,以此减少数据库读取的压力。然而,在数据库中操作中,『写入』对数据库造成的压力,要远比『读取』压力高得多。

想要准确地跟踪用户的最后活跃时间,就必须在用户每一次请求服务器时都做记录,我们使用的主数据是 MySQL,也就是说每当用户访问一个页面,我们都将 MySQL 数据库里的 users 表写入数据。当我们有很多用户频繁访问站点时,这将会是数据库的一笔巨大开销。

我们可以使用 Redis 来记录用户的访问时间,Redis 运行在机器的内存上,读写效率都极快。不过为了保证数据的完整性,我们需要定期将 Redis 数据同步到数据库中,否则一旦 Redis 出问题或者执行了 Redis 清理操作,用户的『最后活跃时间』将会丢失。

基本思路如下:

  1. 记录 - 通过中间件过滤用户所有请求,记录用户访问时间...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
刻意练习,每日精进。
25
点赞
4350
浏览
10
讨论
贡献者

作者