本发明涉及互联网技术领域,尤其涉及一种海量用户高效登录认证方法及系统。
背景技术:
随着互联网技术的发展,网络服务系统在生活及工作过程中使用越来越普及。对于一个大型的服务系统,可能存在海量的使用用户。用户登录操作总带有较多次的数据库的访问查询操作,而对数据库的频繁操作总是耗时的,从而严重的影响了系统的效率,和用户的体验感。
现有技术为解决上述问题采取的方案有:
如申请号为cn201611020277.6的专利文献公开的“一种mvc架构中页面支持多用户登录的方法和装置”,该发明实施例提供一种mvc架构中多用户登录页面方法和装置,方法包括:生成可修改账户页面和/或新增账户页面;通过可修改账户页面和/或新增账户页面接收用户输入的修改的用户名和/或密码,并保存该修改的用户名和/或密码存在配置文件中;同步系统账户的用户名和/或密码分别与配置文件中修改的用户名和/或密码相同;进行重新认证时,比较用户输入的登录用户名和/或登录密码是否分别与配置文件保存的修改的用户名和/或密码匹配,匹配通过后使用出厂自带的默认账户登录。
又如申请号为cn201210421628.x的专利文献公开的“一种实现多用户账号登录的方法、系统及家庭网关”,该发明公开了一种实现多用户账号登录的方法、系统及家庭网关,家庭网关接收用户终端发送的pppoe交互信息,并获取pppoe交互信息中的帐号;当pppoe交互信息中的帐号与家庭网关中预先配置的帐号相同时,家庭网关向用户终端分配私网上网地址;当帐号与家庭网关中预先配置的帐号不相同时,家庭网关将pppoe交互信息转发到宽带接入服务器bras;bras对pppoe交互信息中的帐号信息进行认证,如果认证成功,分配公网上网地址。
现有技术有效解决了较少用户账号登录的效率、安全问题,对于大型系统来说,海量用户登录的效率问题仍然得不到有效解决。
技术实现要素:
针对上述现有技术的现状,本发明所要解决的技术问题在于提供一种海量用户高效登录认证方法及系统,可实现活跃用户的高效快速登录。
本发明解决上述技术问题所采用的技术方案为:
一种海量用户高效登录认证方法,包括步骤:
s1.获取海量用户登录认证请求;
s2.检查数据缓存中是否存在登录认证请求对应的用户的认证信息,若存在,则验证所述用户的登录认证请求;
s3.若不存在,于数据库中查询登录认证请求对应的用户的认证信息,并验证所述用户的登录认证请求。
进一步地,步骤s1中,还包括:
s11.根据所述海量登录认证请求,获取所述海量用户对应的活跃度权值;
s12.判断用户对应的活跃度权值是否达到第二预设权值:
若达到,则将该用户对应的认证信息添加至数据缓存;
若未达到,则将该用户对应的认证信息添加至数据库。
进一步地,步骤s11中,根据用户的登录认证时间信息,对所述用户对应的活跃度权值进行加权操作,具体为:
a1.若用户最近两次登录认证的时间差小于预设值,增加所述用户对应的活跃度权值;
a2.若用户于一固定时间段内登录认证的次数大于预设值,增加所述用户对应的活跃度权值;
a2.当用户活跃度权值达到预设最大活跃度权值后,则不再增加。
进一步地,步骤s11中,根据用户的登录认证时间信息,对所述用户对应的活跃度权值进行降权操作,具体为:
b1.周期性降低所有用户的活跃度权值;
b2.若用户未登录认证的时间达到预设值,降低所述用户对应的活跃度权值。
进一步地,步骤s12之前,还包括:
判断用户的活跃度权值是否达到第一预设权值,若达到,则对活跃度权值达到第一预设权值的用户进行活跃度权值排序;
所述第一预设权值小于所述第二预设权值。
进一步地,还包括:将活跃度权值未达到第一预设权值的用户的认证信息添加至数据库。
一种海量用户高效登录认证系统,包括:
获取模块,用于获取海量用户登录认证请求;
检查模块,用于检查数据缓存中是否存在登录认证请求对应的用户的认证信息;
查询模块,用于当检查到数据缓存中不存在登录认证请求对应的用户的认证信息时,于数据库中查询登录认证请求对应的用户的认证信息;
验证模块,用于验证用户的登录认证请求。
进一步地,所述获取模块包括:
获取单元,用于根据所述海量登录认证请求,获取所述海量用户对应的活跃度权值;
第二判断单元,用于判断用户对应的活跃度权值是否达到第二预设权值;
第一添加单元,用于当用户对应的活跃度权值达到第二预设权值时,将该用户对应的认证信息添加至数据缓存;
第二添加单元,用于当用户对应的活跃度权值未达到第二预设权值时,将该用户对应的认证信息添加至数据库;还用于将活跃度权值未达到第一预设权值的用户的认证信息添加至数据库。
进一步地,所述获取模块还包括:
第一判断单元,用于判断用户的活跃度权值是否达到第一预设权值;
排序单元,用于对活跃度权值达到第一预设权值的用户进行活跃度权值排序。
进一步地,所述获取模块还包括:
加权单元,用于对用户的活跃度权值进行加权操作;
降权单元,用于对用户的活跃度权值进行降权操作。
本发明采用权值算法针对用户的登录频次生成用户的活跃度权值,使用快速排序算法针对用户的权值进行高低排序,将权值相对较高的用户放入数据缓存中,权值相对较低的用户放入传统数据库中,能有效完成高活跃度用户的快速登录工作,提高系统工作效率,提升用户体验感。
附图说明
图1为本发明实施例一中一种海量用户高效登录认证方法流程图;
图2为本发明实施例二中一种海量用户高效登录认证系统结构图;
图3为本发明实施例三中一种海量用户高效登录认证方法流程图;
图4为本发明实施例四中获取模块结构图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
对于一个大型的服务系统,用户登录操作总带有较多次的数据库的访问查询操作。而对数据库的频繁操作总是耗时的,尤其是对于海量的用户。从而严重的影响了系统的效率,和用户的体验感。
本发明采用特殊的权值算法针对用户的登录频次,生成用户的活跃度权值。使用快速排序算法针对用户的权值进行由高到低的排序。将权值相对较高的用户放入缓存中,数据缓存,即数据存储在内存中,可直接高速读取。权值相对较低的用户放入传统数据库中,分布式数据库,即传统数据库集群,用来大规模存储数据,但是读取速度相对数据缓存慢很多。
以下为本发明具体实施例。
实施例一
图1为本实施例中一种海量用户高效登录认证方法流程图,如图1所示,本实施例中,一种海量用户高效登录认证方法包括步骤:
s1.获取海量用户登录认证请求;
用户在访问某一系统时,首先要进行用户登录。
用户登录之前会进行用户注册工作,而注册的相关信息会被系统保存至数据库内,当用户进行登录时,系统从数据库内调取出对应的密码信息等进行比对,密码信息一致则通过用户的登录请求。
后续使用过程中可能也存在需要用到用户信息的地方。
对于一个大型的服务系统来说,访问者可能会有很多,其中包括登录次数较多的用户,相对的,以及登录次数较少的用户。
然而用户登录操作总带有较多次的数据库的访问查询操作,而对数据库的频繁操作总是耗时的,尤其是对于海量的用户。
本步骤中,用户在进行登录操作时,系统会获取用户的登录认证数据信息,包括:用户账号、密码、登录时间、登录地点等信息。
s2.检查数据缓存中是否存在登录认证请求对应的用户的认证信息,若存在,则验证所述用户的登录认证请求;
本步骤中,当系统获取到海量用户的登录认证请求后,系统服务器会首先检查在数据缓存中是否存在对应用户。
数据缓存,即数据存储在内存中,数据缓存优点在于可直接高速读取,在存在海量登录认证请求时,能大大提高系统效率。
若数据缓存中存在该用户的认证信息,则直接高速读取所述用户认证信息,并验证该用户的登录认证请求。
s3.若不存在,于数据库中查询登录认证请求对应的用户的认证信息,并验证所述用户的登录认证请求。
本步骤中,若数据缓存中不存在用户认证信息,则从传统的分布式数据库中读取用户的认证信息,并进行验证。
本实施例对用户的认证信息进行分类存储处理,将用户认证信息放入数据缓存中,或者放入传统数据库中,能有效完成海量用户的快速登录工作,提高系统工作效率,提升用户体验感。
实施例二
图2为本实施例中一种海量用户高效登录认证系统结构图,如图2所示,本实施例中一种海量用户高效登录认证系统结构包括:
获取模块100,用于获取海量用户登录认证请求;
检查模块200,用于检查数据缓存中是否存在登录认证请求对应的用户的认证信息;
查询模块300,用于当检查到数据缓存中不存在登录认证请求对应的用户的认证信息时,于数据库中查询登录认证请求对应的用户的认证信息;
验证模块400,用于验证用户的登录认证请求。
当检查模块200检查到数据缓存中存在用户的认证信息时,直接高速读取所述用户认证信息,并将所述用户认证信息发送至验证模块400,验证模块400根据接收的用户认证信息,验证该用户的登录认证请求。
当检查模块200检查到数据缓存中不存在用户的认证信息时,将该不存在通知发送至查询模块300,查询模块300从传统的分布式数据库中查找该用户的认证信息,并将读取到的所述用户认证信息发送至验证模块400,验证模块400根据接收的用户认证信息,验证该用户的登录认证请求。
实施例三
图3为本实施例中一种海量用户高效登录认证方法流程图,如图3所示,本实施例与实施例一不同之处在于,本实施例一种海量用户高效登录认证方法中,步骤s1还包括:
s11.根据所述海量登录认证请求,获取所述海量用户对应的活跃度权值;
s12.判断用户对应的活跃度权值是否达到第二预设权值:
若达到,则将该用户对应的认证信息添加至数据缓存;
若未达到,则将该用户对应的认证信息添加至数据库。
在数学领域,权值指加权平均数中的每个数的频数,也称为权数或权重。
本实施例中,采用特殊的权值算法针对用户的登录频次,生成用户的活跃度权值。
通过引入活跃度权值,可以区分系统中使用用户为“活跃用户”或者“非活跃用户”。
具体地,设置用户首次登录前的默认权值为0;
根据各个用户登录认证数据信息,通过权值算法计算各个用户对应的权值,所述权值算法包括:加权操作、降权操作。
用户完成注册后,首次登录前,设置该用户的对应权值为0。
步骤s11中,根据用户的登录认证时间信息,对所述用户对应的活跃度权值进行加权操作,具体为:
a1.若用户最近两次登录认证的时间差小于预设值,增加所述用户对应的活跃度权值;
a2.若用户于一固定时间段内登录认证的次数大于预设值,增加所述用户对应的活跃度权值;
a3.当用户活跃度权值达到预设最大活跃度权值后,则不再增加。
用户每次登录过后,根据最近两次登录的时间差,和用户近一固定时间段历史登录次数,增加权值;时间差越小,用户历史登录次数越多说明用户活跃度越高;权值达到一定数值后则不再增加。此时用户为活跃用户,为最高权值;最高权值数据将放入数据缓存中。
步骤s11中,根据用户的登录认证时间信息,对所述用户对应的活跃度权值进行降权操作,具体为:
b1.周期性降低所有用户的活跃度权值;
本步骤中,降权操作每天对每个用户都是存在的,其目的在于,避免某一用户达到最高权值后,在后续一段时间内长时间未进行登录工作,即由活跃用户转为非活跃用户后,该用户对应的用户登录认证数据信息仍在数据缓存内占用内存的的问题。
b2.若用户未登录认证的时间达到预设值,降低所述用户对应的活跃度权值。
本步骤中,对应在一固定时间内未进行登录操作的用户,系统判定该用户为非活跃用户,并对该用户进行降权操作。
本实施例中,步骤s12之前,还包括:
判断用户的活跃度权值是否达到第一预设权值,若达到,则对活跃度权值达到第一预设权值的用户进行活跃度权值排序;
将活跃度权值未达到第一预设权值的用户的认证信息添加至数据库。
所述第一预设权值小于所述第二预设权值。
本实施例中,主要为根据用户的活跃度权值对用户进行“活跃用户”与“非活跃用户”的区分,因此,对海量用户设置有两次“筛选过程”。
第一次筛选,即判断用户的活跃度权值是否达到第一预设权值。
对于一个大型的服务系统,可能存在很多“僵尸账号”,即该账号的使用次数为一次或几次,对于这种账号来说,系统也保存有该账号的认证信息,由于后续权值计算过程中需要对所有账号进行活跃度权值排序,此类账号的存在,会在极大程度上增加排序压力。
因此,本实施例中,在进行活跃度权值排序之前,会首先筛选掉活跃度权值低于第一预设权值的账号。
第二次筛选,即判断用户的活跃度权值是否达到第二预设权值。
在进行第一次筛选之后,会对所有的用户进行活跃度权值排序。
排序的目的在于,在进行第二次筛选时,只需要由上往下进行判断用户的活跃度权值是否达到第二预设权值,当判断某个用户的活跃度权值达不到第二预设权值的要求,后面的用户也不用继续进行判断,从而大大减轻系统工作压力。
在第二个筛选完成后,对应活跃度权值达到第二预设权值要求的用户,对应的认证信息则被添加至数据缓存,以便对应用户在进行下一次登录时能快速完成认证。
本实施例中,还包括:定时刷新数据缓存,更新数据缓存中的数据信息。
对于服务系统来说,访问人数及使用用户较多,对应的用户信息也是海量的,且用户信息为随时更新。
之前权值未达到预设值的用户在一段时间后,权值增加并达到预设值时,该用户对应的用户登录认证数据信息会被系统添加至数据缓存中;
对应地,之前权值达到预设值的用户在一段时间后,权值降低并低于预设值后,该用户对应的用户登录认证数据信息会被系统从数据缓存中移除,并转移至传统数据库内。
由于数据为实时变化,因此定时刷新数据缓存操作是必要的,以便于更新数据缓存中的数据信息。
本实施例采用权值算法针对用户的登录频次生成用户的活跃度权值,使用快速排序算法针对用户的权值进行高低排序,将权值相对较高的用户放入数据缓存中,权值相对较低的用户放入传统数据库中,能有效完成高活跃度用户的快速登录工作,提高系统工作效率,提升用户体验感。
实施例四
图4为本实施例中获取模块结构图,本实施例中,获取模块100用于获取海量用户登录认证请求,此外,还用于获取所述海量用户对应的活跃度权值。
本实施例中,所述获取模块100包括:
获取单元110,用于根据所述海量登录认证请求,获取所述海量用户对应的活跃度权值;
第二判断单元120,用于判断用户对应的活跃度权值是否达到第二预设权值;
第一添加单元130,用于当用户对应的活跃度权值达到第二预设权值时,将该用户对应的认证信息添加至数据缓存;
第二添加单元140,用于当用户对应的活跃度权值未达到第二预设权值时,将该用户对应的认证信息添加至数据库;还用于将活跃度权值未达到第一预设权值的用户的认证信息添加至数据库。
第一判断单元150,用于判断用户的活跃度权值是否达到第一预设权值;
排序单元160,用于对活跃度权值达到第一预设权值的用户进行活跃度权值排序。
加权单元170,用于对用户的活跃度权值进行加权操作;
降权单元180,用于对用户的活跃度权值进行降权操作。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。