Redis进行数据排序,redis数据排序
大学时做过一个在线答题系统,考生在规定时间内作答100道不定项选择题,考试结束后系统自动算分。
因为很多考生同时作答,答案都需要往同一个数据表里面写,会因为数据表被锁而导致响应速度过慢。因此,采用Redis缓存技术将考生的答题信息记录在服务器内存中,在考试结束之后再写入到MySQL数据库中。
当时在设计系统时,计算考生分数并排名是在数据写入到MySQL数据库之后进行的。也就是说需要将考生的答题记录取出,然后计算分数,再将考生的分数写入到数据库中。这样设计有一个较大的问题就是,只能在考试结束之后,才能结算的到考生的分数,而不能在考试过程中,实时的显示考生的成绩和排名。
前一段时间在面试中,接触到了Redis排序的知识,发现可以对原来的系统进行如下优化:
lpush users 201101
lpush users 201102
lpush users 201103
set grades:201101 98
set grades:201102 79
set grades:201103 89
sort users by grades:*
sort users by grades:* get grades:*
参考文章:
http://www.cnblogs.com/redcreen/archive/2011/02/15/1955226.html
http://doc.redisfans.com/key/sort.html
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。