求各路大神帮忙解决大量用户的排行榜问题
本人要做一个OJ(Online Judge)系统,想根据用户答对的题目的数量给用户一个实时排名,即当用户答对一个题目,就立即更新所有用户的排名,用户也可以实时查询到自己的排名。但是如果将排名持久化到数据库,使用视图、触发器或存储过程之类的计算并更新数据库字段都很耗时,尝试过使用视图,但是当用户量达到一万的时候,查询需要四十多秒。
网上有人说不持久化到数据库,而是在内存中处理,请问这种方法可行吗?具体如何实现?哪位大神做过类似的项目,可不可以给一下建议?不胜感激!
[解决办法]
可以用Redis的sorted set数据类型来做
[解决办法]
在内存里处理即可,但还需要注意与数据库的同步,参考下缓存方面的框架(建议使用)
[解决办法]