首页

第12章 实例45:大规模验重和问答排序(接第11章实例)

关灯 护眼    字体:

上一章 目录 下一章




第11章的实例完成以后,可以得到一个能够正常登录的问答网站。本章将讨论如何实现大规模的账号验重功能,以及如何根据点赞数对问题和回答进行动态排序。

实例描述

对第11章完成的实例进一步开发,从而实现对于千万量级的账号验重功能。同时,需要根据点赞数对问题和回答进行动态排序。



12.1  了解实例的最终目标


本实例最终结果是以网页形式呈现的。读者只需完成整个系统中关于  MongoDB  和  Redis操作相关的代码。



12.1.1  账号验重功能


账号验重功能和第11章中使用Redis集合实现验重功能从效果上看是一样的。如果一个用户名已经注册,那么重复注册就会提示账号已经被注册,如图12-1所示。

但与第11章不同的是,如果使用Redis集合来去重,平均每个账号4个中文,占用38  bit的内存空间,那么1亿个账号占用的内存空间为3.5GB。而如果使用本章讲的方法,1亿个账号占用的内存空间为16MB,并且验重的误报率不高于0.1%。

图12-1  不能使用相同的用户名注册多个账号



12.1.2  动态排序功能


问题和回答会根据点赞数量进行动态排序,被点赞数最高的问题或者回答排在前面,如图12-2所示。

图12-2  对问题和回答进行动态排序



12.1.3  注销登录功能


在登录以后,单击右上角的“注销”按钮可以注销当前账号,并返回登录界面,如图12-3所示。

图12-3  注销登录



12.2.4  翻页功能


每一页只显示3个问题,每个问题下只显示3个回答。超过的部分可以通过翻页功能查看,如图12-4所示。

图12-4  翻页功能




上一章 目录 下一章