消息状态存储方法、装置及计算机可读存储介质制造方法及图纸

技术编号:16128553 阅读:31 留言:0更新日期:2017-09-01 20:42
本发明专利技术公开了一种消息状态存储方法、装置以及计算机可读存储介质。所述方法包括:建立用户的标识信息与消息状态列表的1:1映射;以及按照预设存储规则将所述用户的消息状态存入所述消息状态列表;所述预设存储规则为:使用一个Long类型字段的自然数标识所述用户的64条消息的消息状态。应用本发明专利技术的技术方案,能够使用较少的存储空间存储相同数量消息的消息状态。

Message state storage method, device and computer-readable storage medium

The invention discloses a message state storage method, a device and a computer readable storage medium. The method includes: identification information and status information list establishment of user 1:1 mapping; and according to the preset storage rules will be the user status message stored in the message list state; the preset storage rules: 64 message identification natural number using a Long type field of the user's message status. By applying the technical scheme of the invention, the message status of the same amount of messages can be stored with less storage space.

【技术实现步骤摘要】
消息状态存储方法、装置及计算机可读存储介质
本专利技术涉及消息存储
,尤其涉及一种消息状态存储方法,装置以及计算机可读存储介质。
技术介绍
随着互联网以及无线通信技术的不断发展,邮件,IM,短信等通讯工具应用更加广泛,消息交流已经成为日常生活中重要的环节。针对每日小则成百,多则上千的消息列表,用户所面对的累积消息越来越多。相较于已读消息,用户更关注的是那些未读的消息。针对庞大的用户群体,海量的信息列表,如何利用较少的空间存储达到表示消息读取状态的判断,已经成为了消息推送中重要的一环。目前所使用的常用消息存储方法是将用户和消息建立起一个N*N的映射,当用户增加以及消息增长的时候,会带来性能上O(n^2)的一个增长方式,这样带来的存储空间的开销是巨大的,存储空间增加的同时也造成了检索性能上的瓶颈,降低了用户提取未读消息的速度,影响了用户体验。
技术实现思路
本专利技术的主要目的在于提出一种消息状态存储方法、装置及计算机可读存储介质,能够使用较少的存储空间存储相同数量消息的消息状态。为实现上述目的,本专利技术提供的一种消息状态存储方法,所述消息状态包括:未读状态和已读状态,所述方法包括:建立用户的标识信息与消息状态列表的1:1映射;按照预设存储规则将所述用户的消息状态存入所述消息状态列表;所述预设存储规则为:使用一个Long类型字段的自然数标识所述用户的64条消息的消息状态。其中,所述按照预设规则将所述用户的消息状态存入所述消息状态列表,包括:初始化所述消息状态列表,将所述用户的消息状态全部置为未读状态;当所述消息状态列表中特定消息的消息状态由未读状态变为已读状态时,更新所述特定消息的消息状态所属自然数的数值,以将所述特定消息的消息状态由未读状态置为已读状态。其中,所述更新所述特定消息的消息状态所属的自然数的数值,包括:在所述消息状态列表中查询所述特定消息的消息状态所属的自然数的顺序T,数值K,并将所述数值K转换为二进制表达式nk;其中,T=i/64;使用公式nk1=nk&(~(1<<j)),j=i%64,得到更新后的所述特定消息的消息状态所属的顺序为T的自然数的二进制表达式;将所述二进制表达式nk1转换为数值K1并作为顺序为T的自然数的数值存入所述消息状态列表中;其中,nk表示该特定消息未读取之前所属的自然数的数值K的二进制表达式,j表示该特定消息的消息状态由顺序为T的自然数的第j位表示,i表示该特定消息的消息顺序,nk1表示该特定消息被读取之后所属的顺序为T的自然数的二进制表达式。其中,当所述用户的消息状态数量超过所述消息状态列表的最大容量MAX之后,所述按照预设规则将所述用户的消息状态存入所述消息状态列表,包括:按照所述用户的消息发布的先后顺序以及公式i=(id%MAX)/64复用所述消息状态列表;其中,id表示复用前所述用户的消息顺序,i表示复用后所述用户的消息顺序;初始化所述消息状态列表,将所述用户的消息状态全部置为未读状态;当所述消息状态列表中特定消息的消息状态由未读状态变为已读状态时,更新所述特定消息的消息状态所属自然数的数值,以将所述特定消息的消息状态由未读状态置为已读状态。其中,所述更新所述特定消息的消息状态所属的自然数的数值,包括:在所述消息状态列表中查询所述特定消息的消息状态所属的自然数的顺序T,数值K,并将所述数值K转换为二进制表达式nk;其中,T=(i%MAX)/64;使用公式nk1=nk&(~(1<<j)),j=i%MAX%64,得到更新后的所述特定消息的消息状态所属的顺序为T的自然数的二进制表达式;将所述二进制表达式nk1转换为数值K1并作为顺序为T的自然数的数值存入所述消息状态列表中;其中,nk表示该特定消息未读取之前所属的自然数的数值K的二进制表达式,j表示该特定消息的消息状态由顺序为T的自然数的第j位表示,i表示该特定消息的消息顺序,nk1表示该特定消息被读取之后所属的顺序为T的自然数的二进制表达式。其中,所述方法还包括:当接收到查询全部未读消息的请求时,查询所述消息状态列表中存储的所有自然数;若二进制格式中的“1”或“0”表示消息未读状态时,则查询所有自然数对应的所述二进制表达式中的“1”或“0”的数量。其中,若所述二进制表达式中的“1”表示消息未读状态时,所述查询所有自然数对应的所述二进制表达式中的“1”的数量,包括:查询数值为M的自然数对应的所述二进制表达式的“1”的数量,具体如下:使用公式M-1=M&(M-1),C=M&(M-1),查询数值为M的自然数对应的所述二进制表达式中最低位的“1”的位置;将M-1赋值给M,继续执行M-1=M&(M-1),C=M^(M-1),查询所述二进制表达式中最低位的“1”的位置,直到M-1的值为0,得到数值为M的自然数对应的“1”的数量。此外,为实现上述目的,本专利技术还提出一种消息状态存储装置,所述装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息状态存储程序,所述消息状态存储程序执行如下步骤:建立用户的标识信息与消息状态列表的1:1映射;按照预设存储规则将所述用户的消息状态存入所述消息状态列表;所述预设存储规则为:使用一个Long类型字段的自然数标识所述用户的64条消息的消息状态。其中,所述消息状态存储程序在执行按照预设规则将所述用户的消息状态存入所述消息状态列表,包括:初始化所述消息状态列表,将所述用户的消息状态全部置为未读状态;当所述消息状态列表中特定消息的消息状态由未读状态变为已读状态时,更新所述特定消息的消息状态所属自然数的数值,以将所述特定消息的消息状态由未读状态置为已读状态。此外,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有消息状态存储程序,当所述消息状态存储被至少一个处理器执行时实现上述任一项所述的消息状态存储方法的步骤。本专利技术的有益效果是:本专利技术实施例的技术方案,在存储用户的消息状态时,首先建立用户的标识信息与消息状态列表的1:1映射,然后再按照一个Long类型字段的自然数标识用户64条消息的消息状态的规则进行用户消息状态的存储。这样,即使用户激增以及消息爆炸,所带来的存储空间的消耗也只以O(n)的性能进行增长。与现有技术相比,能够使用较少的存储空间存储相同数量消息的消息状态。附图说明图1为实现本专利技术各个实施例的移动终端的硬件结构示意图;图2为如图1所示的移动终端的无线通信系统示意图;图3是本专利技术的消息状态存储方法的第一实施例的流程示意图;图4为本专利技术的消息状态存储方法的第二实施例的流程示意图;图5为图4中步骤403的实施例的流程示意图;图6是本专利技术的消息状态存储方法的第三实施例的流程示意图;图7是本专利技术的消息状态存储方法的第四实施例的流程示意图;图8是本专利技术的查找未读消息的实施例的流程示意图;图9是本专利技术的消息状态存储装置的实施例的结构示意图;本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本专利技术的说明,其本身没有特定的意义。因此,“模块”、“部件本文档来自技高网...
消息状态存储方法、装置及计算机可读存储介质

【技术保护点】
一种消息状态存储方法,所述消息状态包括:未读状态和已读状态,其特征在于,所述方法包括:建立用户的标识信息与消息状态列表的1:1映射;按照预设存储规则将所述用户的消息状态存入所述消息状态列表;所述预设存储规则为:使用一个Long类型字段的自然数标识所述用户的64条消息的消息状态。

【技术特征摘要】
1.一种消息状态存储方法,所述消息状态包括:未读状态和已读状态,其特征在于,所述方法包括:建立用户的标识信息与消息状态列表的1:1映射;按照预设存储规则将所述用户的消息状态存入所述消息状态列表;所述预设存储规则为:使用一个Long类型字段的自然数标识所述用户的64条消息的消息状态。2.如权利要求1所述的消息状态存储方法,其特征在于,所述按照预设规则将所述用户的消息状态存入所述消息状态列表,包括:初始化所述消息状态列表,将所述用户的消息状态全部置为未读状态;当所述消息状态列表中特定消息的消息状态由未读状态变为已读状态时,更新所述特定消息的消息状态所属自然数的数值,以将所述特定消息的消息状态由未读状态置为已读状态。3.如权利要求2所述的消息状态存储方法,其特征在于,所述更新所述特定消息的消息状态所属的自然数的数值,包括:在所述消息状态列表中查询所述特定消息的消息状态所属的自然数的顺序T,数值K,并将所述数值K转换为二进制表达式nk;其中,T=i/64;使用公式nk1=nk&(~(1<<j)),j=i%64,得到更新后的所述特定消息的消息状态所属的顺序为T的自然数的二进制表达式;将所述二进制表达式nk1转换为数值K1并作为顺序为T的自然数的数值存入所述消息状态列表中;其中,nk表示该特定消息未读取之前所属的自然数的数值K的二进制表达式,j表示该特定消息的消息状态由顺序为T的自然数的第j位表示,i表示该特定消息的消息顺序,nk1表示该特定消息被读取之后所属的顺序为T的自然数的二进制表达式。4.如权利要求2所述的消息状态存储方法,其特征在于,当所述用户的消息状态数量超过所述消息状态列表的最大容量MAX之后,所述按照预设规则将所述用户的消息状态存入所述消息状态列表,包括:按照所述用户的消息发布的先后顺序以及公式i=(id%MAX)/64复用所述消息状态列表;其中,id表示复用前所述用户的消息顺序,i表示复用后所述用户的消息顺序;初始化所述消息状态列表,将所述用户的消息状态全部置为未读状态;当所述消息状态列表中特定消息的消息状态由未读状态变为已读状态时,更新所述特定消息的消息状态所属自然数的数值,以将所述特定消息的消息状态由未读状态置为已读状态。5.如权利要求4所述的消息状态存储方法,其特征在于,所述更新所述特定消息的消息状态所属的自然数的数值,包括:在所述消息状态列表中查询所述特定消息的消息状态所属的自然数的顺序T,数值K,并将所述数值K转换为二进制表达式nk;其中,T=(i%MAX)/64;使用公式...

【专利技术属性】
技术研发人员:陈天顺
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1