一种信息访问方法、装置及服务器与流程

文档序号:12377559阅读:209来源:国知局
一种信息访问方法、装置及服务器与流程

本发明涉及互联网技术领域,具体涉及针对互联网信息进行处理的技术领域,尤其涉及一种信息访问方法、装置及服务器。



背景技术:

互联网热点排行榜是按照互联网中相关同类事物被关注的程度由高至低顺序进行排列而形成的榜单信息;例如:华语歌曲TOP50排行榜、观众最喜爱的电影演员TOP20排行榜。现有技术中,互联网热点排行榜的榜单信息通常存储在互联网数据库(Database,简称DB)中,当存在海量的用户客户端请求访问热点排行榜时,服务器需要频繁从DB中拉取榜单信息,这将造成服务器或DB崩溃;为了避免上述热点问题,保证服务器或DB的正常性能,现有技术通常不支持关于热点排行榜的海量访问,无法满足用户对于热点排行榜的榜单信息进行及时性获取的需求。



技术实现要素:

本发明实施例提供一种信息访问方法、装置及服务器,能够支持针对热点排行榜的海量访问,提升信息访问效率,满足用户对于信息的及时性获取的需求。

本发明实施例第一方面提供一种信息访问方法,可包括:

当接收到客户端发送的针对目标热点排行榜的访问请求时,获取所述目标热点排行榜的标识;

根据所述目标热点排行榜的标识从内存映射文件中查询所述目标热点排行榜的榜单信息,其中,所述目标热点排行榜的榜单信息由分布式存储系统同步至所述内存映射文件中;

将所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

优选地,在接收到客户端针对目标热点排行榜发送的访问请求之前,还包括:

采用分布式存储系统对所述目标热点排行榜的榜单信息进行存储;

将所述分布式存储系统中所存储的所述目标热点排行榜的榜单信息同步至内存映射文件中,并在所述内存映射文件中记录同步时间;

其中,所述榜单信息包括:至少一个候选者标识、每个候选者的排名序号及每个候选者的关注票数。

优选地,所述采用分布式存储系统对所述目标热点排行榜的榜单信息进行存储,包括:

采用字符串数组存储所述目标热点排行榜的榜单信息;

对所述字符串数组进行序列化处理以生成特征字符串;

将所述目标热点排行榜的标识及所述特征字符串关联存储至分布式存储系统中。

优选地,所述根据所述目标热点排行榜的标识从内存映射文件中查询所述目标热点排行榜的榜单信息之前,还包括:

判断所述内存映射文件中的目标热点排行榜的榜单信息是否需要更新;

若需要更新,根据所述目标热点排行榜的标识从所述分布式存储系统中拉取所述目标热点排行榜的榜单信息同步至所述内存映射文件中,并更新所述内存映射文件中所记录的同步时间。

优选地,所述判断所述内存映射文件中的目标热点排行榜的榜单信息是否需要更新,包括:

获取所述访问请求的请求时间;

计算所述请求时间与所述内存映射文件中所记录的同步时间之间的差值;

若所述差值大于预设时间阀值则确定需要更新。

优选地,所述将所述目标热点排行榜的榜单信息返回至所述客户端进行输出,包括:

对获取的特征字符串进行反序列化处理,得到字符串数组;

将所述字符串数组还原为所述目标热点排行榜的榜单信息;

将还原后的所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

优选地,所述将所述目标热点排行榜的榜单信息返回至所述客户端进行输出之后,还包括:

当检测到所述客户端发送的针对目标热点排行榜的投票请求时,根据所述投票请求更新所述目标热点排行榜的榜单信息;

其中,所述投票请求中携带所关注的目标候选者标识及新投关注票数。

优选地,所述根据所述投票请求更新所述目标热点排行榜的榜单信息,包括:

若所述目标候选者标识为所述目标热点排行榜内已包括的候选者标识,按照所述新投关注票数更新所述目标候选者的关注票数,对所述目标热点排行榜进行重新排序,并按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新;或者,

若所述目标候选者标识并非为所述目标热点排行榜内已包括的候选者标识,按照所述目标候选者的已有关注票数及所述新投关注票数计算所述目标候选者的总关注票数;

比较所述目标候选者的总关注票数与所述目标热点排行榜中排名序号最末的候选者的关注票数之间的大小;若所述目标候选者的总关注票数较大,从所述目标热点排行榜中删除所述排名序号最末的候选者,将所述目标候选者添加至所述目标热点排行榜中,并对所述目标热点排行榜进行重新排序,并按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新。

优选地,该方法还包括:

按照预设周期对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行备份;

若所述分布式存储系统产生读写异常,将备份的目标热点排行榜的榜单信息重新导入至所述分布式存储系统中。

本发明实施例第二方面提供一种信息访问装置,可包括:

标识获取单元,用于当接收到客户端发送的针对目标热点排行榜的访问请求时,获取所述目标热点排行榜的标识;

查询单元,用于根据所述目标热点排行榜的标识从内存映射文件中查询所述目标热点排行榜的榜单信息,其中,所述目标热点排行榜的榜单信息由分布式存储系统同步至所述内存映射文件中;

输出单元,用于将所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

优选地,该装置还包括:

存储单元,用于采用分布式存储系统对所述目标热点排行榜的榜单信息进行存储;

同步单元,用于将所述分布式存储系统中所存储的所述目标热点排行榜的榜单信息同步至内存映射文件中,并在所述内存映射文件中记录同步时间;

其中,所述榜单信息包括:至少一个候选者标识、每个候选者的排名序号及每个候选者的关注票数。

优选地,所述存储单元包括:

数组处理单元,用于采用字符串数组存储所述目标热点排行榜的榜单信息;

序列化处理单元,用于对所述字符串数组进行序列化处理以生成特征字符串;

关联存储单元,用于将所述目标热点排行榜的标识及所述特征字符串关联存储至分布式存储系统中。

优选地,该装置还包括:

判断单元,用于判断所述内存映射文件中的目标热点排行榜的榜单信息是否需要更新,若需要更新,由所述同步单元根据所述目标热点排行榜的标识从所述分布式存储系统中拉取所述目标热点排行榜的榜单信息并同步至所述内存映射文件中,并更新所述内存映射文件中所记录的同步时间。

优选地,所述判断单元包括:

时间获取单元,用于获取所述访问请求的请求时间;

差值计算单元,用于计算所述请求时间与所述内存映射文件中所记录的同步时间之间的差值;

结果确认单元,用于若所述差值大于预设时间阀值则确定需要更新。

优选地,所述输出单元包括:

反序列化处理单元,用于对获取的特征字符串进行反序列化处理,得到字符串数组;

还原处理单元,用于将所述字符串数组还原为所述目标热点排行榜的榜单信息;

返回单元,用于将还原后的所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

优选地,该装置还包括:

更新单元,用于当检测到所述客户端发送的针对目标热点排行榜的投票请求时,根据所述投票请求更新所述目标热点排行榜的榜单信息;

其中,所述投票请求中携带所关注的目标候选者标识及新投关注票数。

优选地,所述更新单元具体用于:若所述目标候选者标识为所述目标热点排行榜内已包括的候选者标识,按照所述新投关注票数更新所述目标候选者的关注票数,对所述目标热点排行榜进行重新排序,并按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新;或者,

用于若所述目标候选者标识并非为所述目标热点排行榜内已包括的候选者标识,按照所述目标候选者的已有关注票数及所述新投关注票数计算所述目标候选者的总关注票数;

比较所述目标候选者的总关注票数与所述目标热点排行榜中排名序号最末的候选者的关注票数之间的大小;若所述目标候选者的总关注票数较大,从所述目标热点排行榜中删除所述排名序号最末的候选者,将所述目标候选者添加至所述目标热点排行榜中,并对所述目标热点排行榜进行重新排序,并按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新。

优选地,该装置还包括:

备份处理单元,用于按照预设周期对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行备份,并且,若所述分布式存储系统产生读写异常,将备份的目标热点排行榜的榜单信息重新导入至所述分布式存储系统中。

本发明实施例第三方面提供一种服务器,可包括上述第二方面所述的信息访问装置。

本发明实施例采用分布式存储系统存储目标热点排行榜的榜单信息,并且,将分布式存储系统中所存储的目标热点排行榜的榜单信息同步至服务器的内存映射文件中;那么,在客户端提出访问请求时可直接从内存映射文件中查询所述目标热点排行榜的榜单信息并返回至所述客户端进行输出;通过内存映射文件和分布式存储系统二者的结合,既支持海量访问,又可保证服务器及分布式存储系统的性能,同时能够提升信息访问效率,满足用户对于信息的及时性获取的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种信息访问方法的流程图;

图2为本发明实施例提供的另一种信息访问方法的流程图;

图3为本发明实施例提供的一种服务器的内部结构示意图;

图4为本发明实施例提供的一种信息访问装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

互联网热点排行榜是按照互联网中相关同类事物被关注的程度由高至低顺序进行排列而形成;例如:华语歌曲TOP50排行榜是从互联网音乐库中所收录的所有华语歌曲中筛选出用户关注度(又称“人气”)最高的前50首,并按照关注度由高至低的顺序对筛选出的前50首进行排序而形成的榜单;再如:观众最喜爱的电影演员TOP20排行榜是从互联网所收录的所有电影演员中筛选出用户关注度(人气)最高、最受观众喜爱的前20名,并按照关注度由高至低的顺序对筛选出的前20名进行排序而形成的榜单。

在本发明实施例中,一个热点排行榜的榜单信息应当包括:至少一个候选者标识、每个候选者的排名序号及每个候选者的关注票数。其中,候选者标识可以包括但不限于候选者的名称、昵称等等;例如:华语歌曲TOP50排行榜中,50首华语歌曲即为候选者,而候选者标识可以为歌曲名;再如:观众最喜爱的电影演员TOP20排行榜中,20名电影演员即为候选者,而候选者标识可以为演员名。候选者的排名序号表示该候选者的关注度的排列情况,例如:华语歌曲TOP50排行榜中,歌曲A排名序号为1,即表明歌曲A位于榜首是当前人气最高的华语歌曲;再如:观众最喜爱的电影演员TOP20排行榜中,演员B排名序号为20,即表明演员B位于榜尾是人气最高的前20名电影演员中人气最弱的一位。候选者的关注票数用于直观反映候选者的关注度,关注票数越多则关注度(人气)越高,关注票数越少则关注度(人气)越低;例如:华语歌曲TOP50排行榜中,歌曲A位于榜首,其关注票数最高;再如:观众最喜爱的电影演员TOP20排行榜中,演员B位于榜尾,其关注票数最低。需要说明的是,热点排行榜是动态变化的,比如:用户可以针对热点排行榜的榜单内的已有候选者进行关注投票,为其增加关注票数,那么可导致热点排行榜产生动态变化;再如:用户也可以针对热点排行榜的榜单外的其他候选者进行关注投票,为其增加关注票数,那么,当其他候选者的关注票数超过热点排行榜的榜单内的已有候选者的关注票数时,则可导致热点排行榜产生动态变化。

现有技术为了避免热点问题,保证服务器或DB的正常性能,通常不支持关于热点排行榜的海量访问,无法满足用户对于热点排行榜的榜单信息进行及时性获取的需求。为了解决现有技术的问题,本发明实施例采用分布式存储系统替代DB来存储热点排行榜的榜单信息,并且,将分布式存储系统中所存储的目标热点排行榜的榜单信息同步至服务器的内存映射文件中;那么,在客户端提出访问请求时可直接从内存映射文件中查询所述目标热点排行榜的榜单信息并返回至所述客户端进行输出;通过内存映射文件和分布式存储系统二者的结合,既支持海量访问,又可保证服务器及分布式存储系统的性能,同时能够提升信息访问效率,满足用户对于信息的及时性获取的需求。

基于上述描述,本发明实施例提供一种信息处理方法,请参见图1,该方法可包括以下步骤S101-步骤S103。

S101,当接收到客户端发送的针对目标热点排行榜的访问请求时,获取所述目标热点排行榜的标识。

热点排行榜的标识可表示为Key,在互联网中每一个热点排行榜均有其各自的标识,以用于进行唯一标记及与其他排行榜进行区分。客户端可以是PC(Personal Computer,个人计算机)、手机、PAD(平板电脑)等终端,也可以是运行于终端中的功能模块,包括但不限于:web(网页)浏览器、应用程序(Application,APP)等等。当用户请求访问目标热点排行榜时,客户端会生成携带所请求的目标热点排行榜的Key的访问请求,并将该访问请求发送至服务器;那么,本步骤中服务器则可以从访问请求中解析出目标热点排行榜的Key。

S102,根据所述目标热点排行榜的标识从内存映射文件中查询所述目标热点排行榜的榜单信息,其中,所述目标热点排行榜的榜单信息由分布式存储系统同步至所述内存映射文件中。

分布式存储系统优选为Key-Value存储系统,Key-value存储系统能够提供高性能、高可靠性、高扩展性以及持久化的海量数据存储服务。在本发明实施例中,目标热点排行榜预先在分布式存储系统中以Key-Value成对形式关联存储,Key表示目标热点排行榜的标识,Value表示目标热点排行榜的榜单信息值,通过Key可以查找到成对关联存储的Value。内存映射文件存在于服务器本地,具体实现中,服务器在进程的虚拟地址空间中保留一段内存区域,把目标热点排行榜的榜单信息从分布式存储系统中同步映射至该段虚拟内存中而形成内存映射文件。在对内存映射文件进行读写操作时,无需调用API(Application Programming Interface,应用程序编程接口)函数,也不需要提供任何缓冲算法,可采用内存读写方式直接操作内存映射文件,这会极大的提升读写效率,提升服务器的运行性能。本步骤中,依据目标热点排行榜的Key可直接在内存映射文件中查询到目标热点排行榜的榜单信息。

S103,将所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

向客户端返回目标热点排行榜的榜单信息之后,客户端可输出该目标热点排行榜的榜单信息,以web浏览器为例,其可以通过HTML(Hyper Text Markup Language,超级文本标记语言)页面显示该目标热点排行榜的榜单信息,从而使用户通过及时读取并了解目标热点排行榜的排行情况。

本发明实施例的信息访问方法,采用分布式存储系统来存储热点排行榜的榜单信息,并且,将分布式存储系统中所存储的目标热点排行榜的榜单信息同步至服务器的内存映射文件中;那么,在客户端提出访问请求时可直接从内存映射文件中查询所述目标热点排行榜的榜单信息并返回至所述客户端进行输出;通过内存映射文件和分布式存储系统二者的结合,既支持海量访问,避免针对同一热点排行榜的海量访问造成分布式存储系统崩溃,可保证服务器及分布式存储系统的性能,同时能够提升信息访问效率,满足用户对于信息的及时性获取的需求。

本发明实施例还提供另一种信息处理方法,请参见图2,该方法可包括以下步骤S201-步骤S212。

S201,采用分布式存储系统对所述目标热点排行榜的榜单信息进行存储。

分布式存储系统优选为Key-Value存储系统,Key-value存储系统能够提供高性能、高可靠性、高扩展性以及持久化的海量数据存储服务。在本发明实施例中,目标热点排行榜预先在分布式存储系统中以Key-Value成对形式关联存储,Key表示目标热点排行榜的标识,Value表示目标热点排行榜的榜单信息值,通过Key可以查找到成对关联存储的Value。

具体实现中,该方法在执行步骤S201的过程中,具体执行以下步骤s11-s13:

s11,采用字符串数组存储所述目标热点排行榜的榜单信息。

s12,对所述字符串数组进行序列化处理以生成特征字符串。

s13,将所述目标热点排行榜的标识及所述特征字符串关联存储至分布式存储系统中。

步骤s11-s13中,首先,依次读取目标热点排行榜的榜单信息中的各项内容,此处,一项内容包括:一个候选者标识、该候选者的排名序号及该候选者的关注票数;并采用字符串数组结构依次存储所读取的各项内容。其次,可以采用字符串处理工具对字符串数组进行序列化处理生成特征字符串,此处的特征字符串可表示为Value,Value以具体值的方式表征所述目标热点排行榜的榜单信息。此处的字符串处理工具可包括但不限于:Protobuf(Protocol Buffer,简称PB,一种混合语言数据标准,可用于结构化数据串行化或序列化)等等。最后,将目标热点排行榜的标识Key与特征字符串Value成对关联存储至分布式存储系统中。

S202,将所述分布式存储系统中所存储的所述目标热点排行榜的榜单信息同步至内存映射文件中,并在所述内存映射文件中记录同步时间。

内存映射文件存在于服务器本地,具体实现中,服务器在进程的虚拟地址空间中保留一段内存区域,把目标热点排行榜的榜单信息从分布式存储系统中同步映射至该段虚拟内存中而形成内存映射文件。在对内存映射文件进行读写操作时,无需调用API函数,也不需要提供任何缓冲算法,可采用内存读写方式直接操作内存映射文件,这会极大的提升读写效率,提升服务器的运行性能。本步骤的同步操作相当于在内存映射文件中备份一份目标热点排行榜的榜单信息,内存映射文件会记录同步操作的同步时间,此处的同步时间可以采用具体数值表示,例如:XX年XX月XX日XX时XX分XX秒;同步时间也可以采用时间戳表示,例如:1475251200。

S203,当接收到客户端发送的针对目标热点排行榜的访问请求时,获取所述目标热点排行榜的标识。

本实施例的步骤S203可以参见图1所示实施例的步骤S101,在此不赘述。

S204,判断所述内存映射文件中的目标热点排行榜的榜单信息是否需要更新;若需要更新,转入步骤S205;否则,转入步骤S206。

分布式存储系统中所存储的目标热点排行榜的榜单信息是可能产生动态变化的,而内存映射文件中的目标热点排行榜的榜单信息是由分布式存储系统同步映射而成;那么,为了保证内存映射文件中的榜单信息的及时性和准确性,在从内存映射文件中获取该目标热点排行榜的榜单信息之前,需要判断该内存映射文件是否需要更新。具体实现中,该方法在执行步骤S204的判断过程中,具体执行如下步骤s21-s23:

s21,获取所述访问请求的请求时间。

s22,计算所述请求时间与所述内存映射文件中所记录的同步时间之间的差值。

s23,若所述差值大于预设时间阀值则确定需要更新。

步骤s21-s23中,所述访问请求的请求时间可以是服务器在接收到访问请求的时刻从服务器的操作系统中读取到的系统时间。首先,将请求时间与内存映射文件中所记录的同步时间进行减法运算得到差值;其次,比较计算得到的差值与预设时间阀值之间的大小关系,此处预设时间阀值可以根据实际需要进行设定及动态调整,例如:预设时间阀值可以为10s、20s等等;并且在实际应用中可根据需要动态调整预设时间阀值以保证同步映射文件中的榜单信息的实时性和准确性。如果该差值大于所述预设时间阀值,表明内存映射文件最近还未被执行过同步更新,其所存储的榜单信息可能无法保证及时准确,那么可以转入执行步骤S205。如果该差值小于或等于所述预设时间阀值,表明内存映射文件最近已被执行过同步更新,其所存储的榜单信息及时准确,那么可以转入执行步骤S206。

S205,根据所述目标热点排行榜的标识从所述分布式存储系统中拉取所述目标热点排行榜的榜单信息同步至所述内存映射文件中,并更新所述内存映射文件中所记录的同步时间。

S206,根据所述目标热点排行榜的标识从内存映射文件中查询所述目标热点排行榜的榜单信息。

本实施例的步骤S206可以参见图1所示实施例的步骤S102,在此不赘述。与分布式存储系统同步,内存映射文件采用Key-Value方式存储目标热点排行榜的榜单信息。那么,依据目标热点排行榜的Key可在内存映射文件中查询到目标热点排行榜的榜单信息。

S207,对获取的特征字符串进行反序列化处理,得到字符串数组。

S208,将所述字符串数组还原为所述目标热点排行榜的榜单信息。

S209,将还原后的所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

本实施例的步骤S207-S209可以是图1所示实施例的步骤S103的具体细化步骤。通过目标热点排行榜的Key从内存映射文件中可查询到特征字符串;步骤S207-S209则是将特征字符串还原为目标热点排行榜的榜单信息的过程,此过程与步骤s11-s13所示的存储过程相逆,通过反序列化处理及字符串数组还原处理获得目标热点排行榜的榜单信息。

S210,当检测到所述客户端发送的针对目标热点排行榜的投票请求时,根据所述投票请求更新所述目标热点排行榜的榜单信息。

目标热点排行榜是动态变化的,比如:用户可以针对目标热点排行榜的榜单内的已有候选者进行关注投票,为其增加关注票数,那么可导致目标热点排行榜产生动态变化;再如:用户也可以针对目标热点排行榜的榜单外的其他候选者进行关注投票,为其增加关注票数,那么,当其他候选者的关注票数超过目标热点排行榜的榜单内的已有候选者的关注票数时,则可导致目标热点排行榜产生动态变化。因此,本步骤在检测到客户端发送的针对目标热点排行榜的投票请求时,需要根据所述投票请求更新所述目标热点排行榜的榜单信息。

在一种实施方式中,该方法在执行步骤S210的过程中,具体执行如下步骤s31-s32:

s31,若所述目标候选者标识为所述目标热点排行榜内已包括的候选者标识,按照所述新投关注票数更新所述目标候选者的关注票数,对所述目标热点排行榜进行重新排序。

s32,按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新。

步骤s31-s32所示实施方式中,主要是当用户针对目标热点排行榜的榜单内的已有候选者进行关注投票,为其增加关注票数时,动态更新目标热点排行榜的榜单信息的过程。

在另一种实施方式中,该方法在执行步骤S210的过程中,具体执行如下步骤s41-s44:

s41,若所述目标候选者标识并非为所述目标热点排行榜内已包括的候选者标识,按照所述目标候选者的已有关注票数及所述新投关注票数计算所述目标候选者的总关注票数。

s42,比较所述目标候选者的总关注票数与所述目标热点排行榜中排名序号最末的候选者的关注票数之间的大小。

s43,若所述目标候选者的总关注票数较大,从所述目标热点排行榜中删除所述排名序号最末的候选者,将所述目标候选者添加至所述目标热点排行榜中,并对所述目标热点排行榜进行重新排序。

s44,按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新。

步骤s41-s44所示实施方式中,主要是当用户针对目标热点排行榜的榜单外的其他候选者进行关注投票,为其增加关注票数,并且该其他候选者的关注票数超过目标热点排行榜的榜单内的已有候选者的关注票数时,动态更新目标热点排行榜的榜单信息的过程。

S211,按照预设周期对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行备份。

S212,若所述分布式存储系统产生读写异常,将备份的目标热点排行榜的榜单信息重新导入至所述分布式存储系统中。

步骤S211-S212中,预设周期可以根据实际需要进行设定及动态调整,例如:预设周期可以为1分钟、2分钟等等。通过对分布式存储系统中所存储的目标热点排行榜的榜单信息进行备份,可以在分布式存储系统因异常情况被污染而产生读写异常时,将备份的信息导入至分布式存储系统中从而最大限度地修复榜单信息,防止大范围的数据丢失。

本发明实施例的信息访问方法,采用分布式存储系统来存储热点排行榜的榜单信息,并且,将分布式存储系统中所存储的目标热点排行榜的榜单信息同步至服务器的内存映射文件中;那么,在客户端提出访问请求时可直接从内存映射文件中查询所述目标热点排行榜的榜单信息并返回至所述客户端进行输出;通过内存映射文件和分布式存储系统二者的结合,既支持海量访问,避免针对同一热点排行榜的海量访问造成分布式存储系统崩溃,可保证服务器及分布式存储系统的性能,同时能够提升信息访问效率,满足用户对于信息的及时性获取的需求。

基于上述实施例所示的信息访问方法,本发明实施例还提供了一种服务器,请参见图3,该服务器的内部结构可包括但不限于:处理器、网络接口及存储器。其中,服务器内的处理器、网络接口及存储器可通过总线或其他方式连接,在本发明实施例所示图3中以通过总线连接为例。

其中,处理器(或称CPU(Central Processing Unit,中央处理器))是服务器的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是服务器中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了服务器的操作系统,可包括但不限于:Windows系统(一种操作系统)、Linux(一种操作系统)系统等等,本发明对此并不作限定。存储器的存储空间还存储了信息访问装置,该信息访问装置在物理上可以是运行于服务器中的一段或多段程序,例如:CGI(Common Gateway Interface,公共网关接口)程序;信息访问装置运行时能够实现服务器与客户端之间的信息传递及处理。

在本发明实施例中,服务器与分布式存储系统相连接,该分布式存储系统优先为Key-Value系统,例如CKV(由腾讯公司提供的一种海量分布式存储系统)系统。服务器通过运行存储器中的信息访问装置来执行上述图1-图2所示方法流程的相应步骤。请一并参见图4,该信息访问装置运行如下单元:

标识获取单元101,用于当接收到客户端发送的针对目标热点排行榜的访问请求时,获取所述目标热点排行榜的标识。

查询单元102,用于根据所述目标热点排行榜的标识从内存映射文件中查询所述目标热点排行榜的榜单信息,其中,所述目标热点排行榜的榜单信息由分布式存储系统同步至所述内存映射文件中。

输出单元103,用于将所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

具体实现中,该装置还执行如下单元:

存储单元104,用于采用分布式存储系统对所述目标热点排行榜的榜单信息进行存储。

同步单元105,用于将所述分布式存储系统中所存储的所述目标热点排行榜的榜单信息同步至内存映射文件中,并在所述内存映射文件中记录同步时间。

其中,所述榜单信息包括:至少一个候选者标识、每个候选者的排名序号及每个候选者的关注票数。

具体实现中,该装置在执行所述存储单元104的过程中,具体执行如下单元:

数组处理单元1001,用于采用字符串数组存储所述目标热点排行榜的榜单信息。

序列化处理单元1002,用于对所述字符串数组进行序列化处理以生成特征字符串。

关联存储单元1003,用于将所述目标热点排行榜的标识及所述特征字符串关联存储至分布式存储系统中。

具体实现中,该装置还执行如下单元:

判断单元106,用于判断所述内存映射文件中的目标热点排行榜的榜单信息是否需要更新,若需要更新,由所述同步单元105根据所述目标热点排行榜的标识从所述分布式存储系统中拉取所述目标热点排行榜的榜单信息并同步至所述内存映射文件中,并更新所述内存映射文件中所记录的同步时间。

具体实现中,该装置在执行所述判断单元106的过程中,具体执行如下单元:

时间获取单元2001,用于获取所述访问请求的请求时间。

差值计算单元2002,用于计算所述请求时间与所述内存映射文件中所记录的同步时间之间的差值。

结果确认单元2003,用于若所述差值大于预设时间阀值则确定需要更新。

具体实现中,该装置在执行所述输出单元103的过程中,具体执行如下单元:

反序列化处理单元3001,用于对获取的特征字符串进行反序列化处理,得到字符串数组。

还原处理单元3002,用于将所述字符串数组还原为所述目标热点排行榜的榜单信息。

返回单元3003,用于将还原后的所述目标热点排行榜的榜单信息返回至所述客户端进行输出。

具体实现中,该装置还执行如下单元:

更新单元107,用于当检测到所述客户端发送的针对目标热点排行榜的投票请求时,根据所述投票请求更新所述目标热点排行榜的榜单信息;其中,所述投票请求中携带所关注的目标候选者标识及新投关注票数。

所述更新单元107具体用于:若所述目标候选者标识为所述目标热点排行榜内已包括的候选者标识,按照所述新投关注票数更新所述目标候选者的关注票数,对所述目标热点排行榜进行重新排序,并按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新;或者,

用于若所述目标候选者标识并非为所述目标热点排行榜内已包括的候选者标识,按照所述目标候选者的已有关注票数及所述新投关注票数计算所述目标候选者的总关注票数;比较所述目标候选者的总关注票数与所述目标热点排行榜中排名序号最末的候选者的关注票数之间的大小;若所述目标候选者的总关注票数较大,从所述目标热点排行榜中删除所述排名序号最末的候选者,将所述目标候选者添加至所述目标热点排行榜中,并对所述目标热点排行榜进行重新排序,并按照重新排序结果对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行更新。

具体实现中,该装置还执行如下单元:

备份处理单元108,用于按照预设周期对所述分布式存储系统中所存储的目标热点排行榜的榜单信息进行备份,并且,若所述分布式存储系统产生读写异常,将备份的目标热点排行榜的榜单信息重新导入至所述分布式存储系统中。

由于服务器通过运行图4所示的信息访问装置来执行图1-图2所示的信息访问方法,因此,图4所示的信息访问装置的各单元的功能可参见图1-图2所示的信息访问方法的各步骤的相关描述,在此不赘述。

与方法同理,本发明实施例提供的服务器及信息访问装置,采用分布式存储系统来存储热点排行榜的榜单信息,并且,将分布式存储系统中所存储的目标热点排行榜的榜单信息同步至服务器的内存映射文件中;那么,在客户端提出访问请求时可直接从内存映射文件中查询所述目标热点排行榜的榜单信息并返回至所述客户端进行输出;通过内存映射文件和分布式存储系统二者的结合,既支持海量访问,避免针对同一热点排行榜的海量访问造成分布式存储系统崩溃,可保证服务器及分布式存储系统的性能,同时能够提升信息访问效率,满足用户对于信息的及时性获取的需求。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1