我正在开发游戏的服务器端。我正在使用Play Framework和MySQL。 API消费者将成为移动设备。
排名是基于某些用户值的SQL视图。所以我没有一个名为Rank的表,我总是使用SQL视图来创建Rank。这些值总是根据用户的操作而改变。
这有一个问题,因为让我们假设一个用户在他的手机上并且正在查看排名。由于它是分页的并且我正在使用视图,因此页面之间可能存在一些同步问题。示例:我是排名第一页(第0页)。所以我向下滚动,获得第1页的要求。在此期间,所有玩家都发生了很多事件,因此我可能会在第二页和第一页中,因为手机上的应用程序无法知道此更改。
每三分钟执行一次作业,所以我想总是让这个视图缓存并在这个作业运行时更新它。因此用户将始终看到相同的排名。
我虽然使用Memcached或Redis,所以每次我都可以在Cache中保存排名视图,但看起来它们不能按我的需要工作(我测试了Memcached)。
有人知道如何缓存此视图吗?有没有人有更好的主意?
我正在考虑使用NoSQL数据库存储它,但我不知道它是否有意义。
等级更新操作必须快速。
谢谢大家!