因为是从游戏服务器转到 app 服务器开发,所以有些想法不知道是否适用当前的应用场景。
场景如下:
app 客户端在用户登录后,需要向服务器请求拉取用户的个人信息,例如:昵称、图像、好友列表之类的信息,如果每次请求都需要查询数据库,会对数据库造成很大的压力吗?
基于上面的考虑,我用游戏服务器的思路,当用户登录后,缓存用户的资料到 redis 中,这样可以避免频繁查询数据库,但是,有个问题,用户越多, redis 中缓存的用户数据就越多,所以我想增加一个定时器,定时清理超过一段时间的数据,保证 redis 缓存的数据不会过大。
因为第一次做 app 服务器,所以请大神分析下我的思路是否正确,谢谢。
1
billlee 2015-11-06 19:23:26 +08:00
用 redis 做缓存是正确的思路。另外 redis 做缓存用的时候,是可以设置每个 key 的过期时间的,还可以设置内存限制,在超过限制时自动 drop 掉旧的内容。所以好像没什么必要用定时器。
另外,还可以在 HTTP 层面做缓存,利用 nginx 的缓存功能,绕过 app 服务器。 |