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条消息的消息状态。其中,所述按照预设规则将所述用户的消息状态存入所述消息状态列表,包括:初始化所述消息状态列表,将所述用户的消息状态全部置为未读状态;当所述消息状态列表中特定消息的消息状态由未读状态变为已读 ...
【技术保护点】
一种消息状态存储方法,所述消息状态包括:未读状态和已读状态,其特征在于,所述方法包括:建立用户的标识信息与消息状态列表的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;使用公式...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。