CN112131222B - 消息读取状态数据的存储方法、装置、介质及电子设备 - Google Patents
消息读取状态数据的存储方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN112131222B CN112131222B CN202011003432.XA CN202011003432A CN112131222B CN 112131222 B CN112131222 B CN 112131222B CN 202011003432 A CN202011003432 A CN 202011003432A CN 112131222 B CN112131222 B CN 112131222B
- Authority
- CN
- China
- Prior art keywords
- message
- user
- message state
- data storage
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013500 data storage Methods 0.000 claims abstract description 104
- 238000012545 processing Methods 0.000 claims description 20
- 238000013144 data compression Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及数据压缩存储技术领域,揭示了一种消息读取状态数据的存储方法、装置、介质及电子设备。该方法包括:建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。此方法下,极大地降低了消息的已读/未读状态所消耗的数据存储的空间,并且在消息已读未读的查询速度方面也有了极大的提高。
Description
技术领域
本公开涉及数据压缩存储领域,特别涉及一种消息读取状态数据的存储方法、装置、介质及电子设备。
背景技术
系统消息是每个用户都要收到的,每一个用户对应同一条消息的已读/未读状态需要分别存储。假设有一条系统消息给了n个用户,则需要n条数据来保存该消息的已读未读,类推如果m条消息数据发送给n个用户,则需要m*n条数据来保存用户消息的已读未读,这样就会导致用户消息的已读/未读的数据量将会以用户数量的量级别递增。极大的浪费了存储空间,影响了查询速度。
发明内容
在数据压缩存储技术领域,为了解决上述技术问题,本公开的目的在于提供一种消息读取状态数据的存储方法、装置、介质及电子设备。
根据本公开的一方面,提供了一种消息读取状态数据的存储方法,所述方法包括:
建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;
建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
根据本公开的另一方面,提供了一种消息读取状态数据的存储装置,所述装置存储有消息读取状态数据,所述装置中的所述消息读取状态数据利用基于如前所述的方法而建立的第一数据存储结构和第二数据存储结构进行存储。
根据本公开的另一方面,提供了一种消息读取状态数据的存储装置,所述装置包括:
第一建立模块,被配置为建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;
第二建立模块,被配置为建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
根据本公开的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,当所述计算机可读指令被计算机执行时,使计算机执行如前所述的方法。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开所提供的消息读取状态数据的存储方法,包括如下步骤:建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
此方法下,通过将用户数据和消息状态记录在两个数据存储结构中存储,将用户数据分页存储,同时,将一页内用户对应的消息状态存储至一个一个字段中,相对于现有的存储方式实现了数据存储的压缩,能够极大地降低消息的已读/未读状态所对应的数据存储的空间,并且在消息已读未读的查询速度上也将有极大的提高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种消息读取状态数据的存储方法的系统架构示意图;
图2是根据一示例性实施例示出的一种消息读取状态数据的存储方法的流程图;
图3是根据一示例性实施例示出的用户对应的不同消息状态在第一数据存储结构和第二数据存储结构中的记录方式示意图;
图4是根据一示例性实施例示出的消息读取状态数据的存储方法的整体原理示意图;
图5是根据一示例性实施例示出的一种消息读取状态数据的存储装置的框图;
图6是根据一示例性实施例示出的一种实现上述消息读取状态数据的存储方法的电子设备示例框图;
图7是根据一示例性实施例示出的一种实现上述消息读取状态数据的存储方法的计算机可读存储介质。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种消息读取状态数据的存储方法。消息读取状态是在向用户发送消息后,用于记录了用户是否读取了该消息的信息,因此,消息读取状态可以包括已读和未读两种状态。此处消息读取状态中的消息可以是各种终端或设备中收到的消息,这些终端或设备比如可以是智能手机、智能手表、笔记本电脑等移动设备,也可以是智能电视、台式计算机等固定式设备;对于这些消息的类型而言,这些消息可以是操作系统等系统软件发送的系统消息,也可以应用软件发送的消息,这些消息可以是由设备运行程序代码而自动发出,也可以由用户进行设备操作而手动向外发出。
本公开的实施终端可以是任何具有运算、处理以及存储功能的设备,该设备可以与外部设备相连,用于接收或者发送数据,具体可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、PDA(Personal Digital Assistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施或者服务器集群。
可选地,本公开的实施终端可以为服务器或者云计算的物理基础设施。
图1是根据一示例性实施例示出的一种消息读取状态数据的存储方法的系统架构示意图。如图1所示,该系统架构包括服务器110和用户终端120。用户终端120与服务器110通过有线或者无线通信链路相连,因此,用户终端120可以向服务器110发送数据,也可以接收来自服务器110的数据,服务器110上设有服务端程序,而用户终端120上安装并运行有客户端软件,服务器110为本实施例中的实施终端。当本公开提供的消息读取状态数据的存储方法应用于图1所示的系统架构中时,一个具体过程可以是这样的:服务器110首先建立了用于存储消息读取状态数据的第一数据存储结构和第二数据存储结构;接着,服务器110通过服务端程序向用户终端120上的客户端软件发送某一条消息,登录该客户端软件的用户具有相应的用户标识,而服务器110发出的某一条消息具有对应的消息标识,此时假如该消息尚未被读取,服务器110会将用户标识、对应的消息标识以及表示未读的消息状态存储至第一数据存储结构和第二数据存储结构中;而当该消息被用户读取时,服务器110会收到通知,然后服务器110会基于该通知将已存储的表示未读的消息状态更新为表示已读的消息状态。
值得一提的是,图1仅为本公开的一个实施例,虽然在本实施例中的实施终端为服务器,但在其他实施例或者实际应用中,实施终端可以为如前所述的各种终端或设备;虽然在本实施例中,用户终端120与服务器110直接通过通信链路相连,但此处仅仅是示意性的,在实际情况下,用户终端120与服务器110之间还可以包括代理服务器、网关、路由器等各种设备;虽然在本实施例中,与服务器110相连的用户终端120只有一个,但可以同时有多个用户终端120与服务器110相连,即服务器110可以向多个用户终端120发送消息。本公开对此不作限定,本公开的保护范围也不应因此而受到任何限制。
图2是根据一示例性实施例示出的一种消息读取状态数据的存储方法的流程图。本实施例提供的消息读取状态数据的存储方法可以由服务器执行,如图2所示,包括以下步骤:
步骤210,建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构。
本实施例提供的消息读取状态数据的存储方法将建立第一数据存储结构和第二数据存储结构。
第一数据存储结构和第二数据存储结构可以为各种结构,只需要将用户标识、页索引等内容用行列的关系来表示和组织即可,比如可以利用数组、堆、栈、链表等数据结构存储。
在一个实施例中,所述第一数据存储结构和所述第二数据存储结构均为数据表。
比如,第一数据存储结构可以为表1所示的数据表:
userId | pageIndex | pageUserIndex |
a | 1 | 0 |
b | 1 | 1 |
c | 2 | 0 |
d | 2 | 1 |
表1
在表1中,第一列的a、b、c、d为用户标识,对应的列名为userId,第二列的1和2分别为页索引,对应的列名为pageIndex,页索引可以从1开始编号,第三列的0,1则为页内用户索引,对应的列名为pageUserIndex,它可以用0开始编号。
因此,在表1中有4条用户数据[a,b,c,d],将用户数据以2条为一页,划分出两页用户数据,分别为:1={a,b},2={c,d}。
在一个实施例中,所述第一数据存储结构为一个数据表。
在很多情况下,比如在数据量不多等情况下,一个数据表即可满足数据存储的需要。
在一个实施例中,所述第一数据存储结构为至少一个数据表,在所述第一数据存储结构中,同一数据表中的记录对应着同一页索引。
因此,第一数据存储结构可以为一个或者多个数据表。
在一个实施例中,所述第一数据存储结构为至少一个数据表,在所述第一数据存储结构中,同一数据表中的记录对应着同一页索引,任意两个数据表中的记录所对应的页索引均不相同。
因此,第一数据存储结构中不同数据表对应的页索引也可以相同,也可以不同。当第一数据存储结构中不同数据表对应的页索引均不相同时,每一数据表记录了至少一个分页内的用户数据。
在一个实施例中,所述第一数据存储结构中各页索引所对应的用户标识的数量相同。
在本实施例中,由于各页索引所对应的用户标识的数量相同,因此可以使得数据的存储更整齐,避免遗漏。
步骤220,建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构。
其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
第二数据存储结构可以如表2所示:
msgId | pageIndex | statusRecord |
msg001 | 1 | 00 |
msg001 | 2 | 00 |
表2
在表2中,第一列的msg001为消息标识,对应的列名为msgId,第二列的1,2为页索引,对应的列名为pageIndex,表1也存在以该列名命名的列,它与表1中的pageIndex所在列相对应,第三列的00为消息状态记录,对应的列名为statusRecord,可以代表两个用户的消息状态。
由此可见,第一数据存储结构包括与第一数据存储结构内各列的内容对应的列名,第二数据存储结构包括与第二数据存储结构内各列的内容对应的列名。
具体来说,第一数据存储结构的页索引和第二数据存储结构内的页索引所对应的列名可以相同。
在一个实施例中,所述消息状态记录为由0和1组成的字符序列,0和1为消息状态,0代表消息状态为未读,1代表消息状态为已读。
因此,消息状态记录可以利用bit数组的方式记录。
图3是根据一示例性实施例示出的用户对应的不同消息状态在第一数据存储结构和第二数据存储结构中的记录方式示意图。请参照图3,记录了a和b两个用户对msg001这一消息的不同消息状态,因此,a和b两个用户对应着A、B、C和D共四种不同的消息状态组合。从bit数组出发的箭头指向的数据即为消息状态记录,0代表消息状态为未读,1代表消息状态为已读。消息状态记录下方的0和1则表示a和b用户在第一数据存储结构中所对应的页内用户索引,消息状态记录下方的0和1的长度与消息状态记录的长度相同。因此,在A这一消息状态组合下,表示用户a对该消息已读,而用户b对该消息未读;同理,在B这一消息状态组合下,表示用户a对该消息未读,而用户b对该消息已读,以此类推。
在一个实施例中,同一页索引对应的页内用户索引采用从0开始每次递增1的方式编号,所述消息状态记录包括至少一个字符,所述消息状态记录所包括的字符的数目与所述消息状态记录所对应的页索引所对应的所述第一数据存储结构中用户标识的数目相同,所述方法还包括:
确定所述第一数据存储结构中目标用户的用户标识所对应的页索引和页内用户索引;
获取所述第二数据存储结构中所述页索引对应的第一消息状态记录;
对移位序列进行向左移位处理,其中,对移位序列进行向左移位处理所移得的位数等于所述页内用户索引,所述移位序列的长度与所述消息状态记录的长度相同,所述移位序列的最低位为1,其余位为0;
对所述第一消息状态记录和经移位处理后的所述移位序列进行或运算,得到第二消息状态记录;
将所述第二数据存储结构中的所述第一消息状态记录替换为所述第二消息状态记录。
移位序列的长度和消息状态记录的长度,即移位序列的位数和消息状态记录的位数。
比如,第一消息状态记录为1100010,页内用户索引为3,那么移位序列为0000001,经如下表达式所表示的过程,即向左移位3位后,得到0001000:
0000001<<3=0001000,
将第一消息状态记录与0001000进行或运算得到的第二消息状态记录为1101010,可以通过如下表达式表示:
0001000|1100010=1101010,
最终将第二数据存储结构中的1100010替换为了1100010。
本实施例中实现了在本公开提供的消息读取状态数据的存储方式下的数据更新。
移位处理后将溢出位去掉,低位用0补齐。
同理,移位序列也可以为100000,相应地,也可以对该移位序列进行向右移位处理。
类似地,0也可以代表消息状态为已读,1也可以代表消息状态为未读,移位序列进行相应地改变即可,另外,同一页索引对应的页内用户索引也可以不采用从0开始每次递增1的方式编号,比如可以采用从1开始每次递增1的方式编号,这样,对移位序列进行移位处理所移得的位数应当等于页内用户索引加1。
在一个实施例中,同一页索引对应的页内用户索引采用从0开始每次递增1的方式编号,所述消息状态记录包括至少一个字符,所述消息状态记录所包括的字符的数目与所述消息状态记录所对应的页索引所对应的所述第一数据存储结构中用户标识的数目相同,所述方法还包括:
确定所述第一数据存储结构中目标用户的用户标识所对应的页索引和页内用户索引;
获取所述第二数据存储结构中所述页索引对应的第三消息状态记录;
对所述第三消息状态记录进行向右移位处理,其中,对第三消息状态记录进行向右移位处理所移得的位数等于所述页内用户索引;
对第三消息状态记录所述第三消息状态记录和移位序列进行与运算,得到第四消息状态记录,其中,所述移位序列的长度与所述消息状态记录的长度相同,所述移位序列的最低位为1,其余位为0;
将所述第四消息状态记录转换为十进制并输出,作为所述目标用户的用户标识所对应的消息状态。
本实施例中实现了在本公开提供的消息读取状态数据的存储方式下的消息状态的查询。
本公开的整体方案可以如图4所示。图4是根据一示例性实施例示出的消息读取状态数据的存储方法的整体原理示意图,通过图4可以看出,第一数据存储结构包括page1和page2两个用户页,page1中包括的用户标识至少包括a和b,而page2中包括的用户标识至少包括c和d,第一数据存储结构下方的数据存储结构为第二数据存储结构,page1指向的第二数据存储结构部分记录了page1这一用户页中的用户所对应的消息状态数据,page2指向的第二数据存储结构部分记录了page2这一用户页中的用户所对应的消息状态数据。因此,本公开实施例的用户数据实现了逻辑上的分页处理,通过并通过二维的方式存储,用户数据和消息状态数据通过页索引相关联。
假设现在有m个用户数据和n个消息,用户数据以y条数据分页,则用户消息表的数据量将变为m/y*n条数据。假设现在有1w个用户100条消息,按传统的设计,用户消息的记录数将会是100w条。按本专利的设计,如果将用户数据以1024分页,将用户分为10页,则用户消息的记录数10*100,则用户消息记录数为1000条,每条记录的statusRecord占用的bit长度为1024,换算成字节为128byte。用户消息的记录数由100万变成了1000条。极大的降低了数据存储的空间,并且在消息已读未读的查询速度上也将有极大的提高。
综上所述,根据图2实施例提供的消息读取状态数据的存储方法,通过将用户数据和消息状态记录在两个数据存储结构中存储,将用户数据分页存储,同时,将一页内用户对应的消息状态存储至一个一个字段中,能够极大地降低消息的已读/未读状态所对应的数据存储的空间,并且在消息已读未读的查询速度上也将有极大的提高。
根据本公开的另一方面,本公开还提供了一种消息读取状态数据的存储装置,所述装置存储有消息读取状态数据,所述装置中的所述消息读取状态数据利用基于上述的方法而建立的第一数据存储结构和第二数据存储结构进行存储。
根据本公开的第三方面,本公开又提供了一种消息读取状态数据的存储装置,以下是本公开的装置实施例。
图5是根据一示例性实施例示出的一种消息读取状态数据的存储装置的框图。如图5所示,该装置500包括:
第一建立模块510,被配置为建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;
第二建立模块520,被配置为建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
在一个实施例中,所述第一数据存储结构和所述第二数据存储结构均为数据表。
在一个实施例中,所述第一数据存储结构为至少一个数据表,在所述第一数据存储结构中,同一数据表中的记录对应着同一页索引。
在一个实施例中,所述消息状态记录为由0和1组成的字符序列,0和1为消息状态,0代表消息状态为未读,1代表消息状态为已读。
在一个实施例中,同一页索引对应的页内用户索引采用从0开始每次递增1的方式编号,所述消息状态记录包括至少一个字符,所述消息状态记录所包括的字符的数目与所述消息状态记录所对应的页索引所对应的所述第一数据存储结构中用户标识的数目相同,所述装置还包括:
第一确定模块,被配置为确定所述第一数据存储结构中目标用户的用户标识所对应的页索引和页内用户索引;
第一获取模块,被配置为获取所述第二数据存储结构中所述页索引对应的第一消息状态记录;
向左移位模块,被配置为对移位序列进行向左移位处理,其中,对移位序列进行向左移位处理所移得的位数等于所述页内用户索引,所述移位序列的长度与所述消息状态记录的长度相同,所述移位序列的最低位为1,其余位为0;
第一运算模块,被配置为对所述第一消息状态记录和经移位处理后的所述移位序列进行或运算,得到第二消息状态记录;
替换模块,被配置为将所述第二数据存储结构中的所述第一消息状态记录替换为所述第二消息状态记录。
在一个实施例中,同一页索引对应的页内用户索引采用从0开始每次递增1的方式编号,所述消息状态记录包括至少一个字符,所述消息状态记录所包括的字符的数目与所述消息状态记录所对应的页索引所对应的所述第一数据存储结构中用户标识的数目相同,所述装置还包括:
第二确定模块,被配置为确定所述第一数据存储结构中目标用户的用户标识所对应的页索引和页内用户索引;
第二获取模块,被配置为获取所述第二数据存储结构中所述页索引对应的第三消息状态记录;
向右移位模块,被配置为对所述第三消息状态记录进行向右移位处理,其中,对第三消息状态记录进行向右移位处理所移得的位数等于所述页内用户索引;
第二运算模块,被配置为对第三消息状态记录所述第三消息状态记录和移位序列进行与运算,得到第四消息状态记录,其中,所述移位序列的长度与所述消息状态记录的长度相同,所述移位序列的最低位为1,其余位为0;
转换和输出模块,被配置为将所述第四消息状态记录转换为十进制并输出,作为所述目标用户的用户标识所对应的消息状态。
根据本公开的第四方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行,比如与显示单元640通信。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第五方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,当所述计算机可读指令被计算机执行时,使计算机执行本说明书上述的方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述消息读取状态数据的存储方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种消息读取状态数据的存储方法,其特征在于,所述方法包括:
建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;
建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
2.根据权利要求1所述的方法,其特征在于,所述第一数据存储结构和所述第二数据存储结构均为数据表。
3.根据权利要求2所述的方法,其特征在于,所述第一数据存储结构为至少一个数据表,在所述第一数据存储结构中,同一数据表中的记录对应着同一页索引。
4.根据权利要求3所述的方法,其特征在于,所述消息状态记录为由0和1组成的字符序列,0和1为消息状态,0代表消息状态为未读,1代表消息状态为已读。
5.根据权利要求4所述的方法,其特征在于,同一页索引对应的页内用户索引采用从0开始每次递增1的方式编号,所述消息状态记录包括至少一个字符,所述消息状态记录所包括的字符的数目与所述消息状态记录所对应的页索引所对应的所述第一数据存储结构中用户标识的数目相同,所述方法还包括:
确定所述第一数据存储结构中目标用户的用户标识所对应的页索引和页内用户索引;
获取所述第二数据存储结构中所述页索引对应的第一消息状态记录;
对移位序列进行向左移位处理,其中,对移位序列进行向左移位处理所移得的位数等于所述页内用户索引,所述移位序列的长度与所述消息状态记录的长度相同,所述移位序列的最低位为1,其余位为0;
对所述第一消息状态记录和经移位处理后的所述移位序列进行或运算,得到第二消息状态记录;
将所述第二数据存储结构中的所述第一消息状态记录替换为所述第二消息状态记录。
6.根据权利要求4所述的方法,其特征在于,同一页索引对应的页内用户索引采用从0开始每次递增1的方式编号,所述消息状态记录包括至少一个字符,所述消息状态记录所包括的字符的数目与所述消息状态记录所对应的页索引所对应的所述第一数据存储结构中用户标识的数目相同,所述方法还包括:
确定所述第一数据存储结构中目标用户的用户标识所对应的页索引和页内用户索引;
获取所述第二数据存储结构中所述页索引对应的第三消息状态记录;
对所述第三消息状态记录进行向右移位处理,其中,对第三消息状态记录进行向右移位处理所移得的位数等于所述页内用户索引;
对第三消息状态记录所述第三消息状态记录和移位序列进行与运算,得到第四消息状态记录,其中,所述移位序列的长度与所述消息状态记录的长度相同,所述移位序列的最低位为1,其余位为0;
将所述第四消息状态记录转换为十进制并输出,作为所述目标用户的用户标识所对应的消息状态。
7.一种消息读取状态数据的存储装置,其特征在于,所述装置存储有消息读取状态数据,所述装置中的所述消息读取状态数据利用基于权利要求1至6任一项所述的方法而建立的第一数据存储结构和第二数据存储结构进行存储。
8.一种消息读取状态数据的存储装置,其特征在于,所述装置包括:
第一建立模块,被配置为建立将用户标识、页索引及页内用户索引分列存储的第一数据存储结构;
第二建立模块,被配置为建立将消息标识、所述页索引及消息状态记录分列存储的第二数据存储结构,其中,每一所述消息状态记录存储了多个所述用户标识对应的消息状态信息,各所述消息状态信息对应的多个所述用户标识为所述第一数据存储结构内所述消息状态记录所对应的页索引所对应的用户标识。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可读指令,当所述计算机可读指令被计算机执行时,使计算机执行根据权利要求1至6中任一项所述的方法。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011003432.XA CN112131222B (zh) | 2020-09-22 | 2020-09-22 | 消息读取状态数据的存储方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011003432.XA CN112131222B (zh) | 2020-09-22 | 2020-09-22 | 消息读取状态数据的存储方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131222A CN112131222A (zh) | 2020-12-25 |
CN112131222B true CN112131222B (zh) | 2024-04-02 |
Family
ID=73842258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011003432.XA Active CN112131222B (zh) | 2020-09-22 | 2020-09-22 | 消息读取状态数据的存储方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131222B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704339A (zh) * | 2021-08-30 | 2021-11-26 | 平安普惠企业管理有限公司 | 已读信息状态的记录、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221812A (zh) * | 2006-08-28 | 2008-07-16 | 三星电子株式会社 | 具有多页复录功能的闪存器件及相关的块替换方法 |
CN101739544A (zh) * | 2008-11-13 | 2010-06-16 | 索尼爱立信移动通信日本株式会社 | 读取图案图像的方法、装置、程序以及信息处理方法 |
CN102984396A (zh) * | 2012-12-25 | 2013-03-20 | 广州从兴电子开发有限公司 | 活跃用户数统计方法及装置 |
CN105119955A (zh) * | 2015-07-09 | 2015-12-02 | 中国科学院计算技术研究所 | 一种分布式文件系统中读目录多页支持的方法及系统 |
CN105808235A (zh) * | 2016-02-24 | 2016-07-27 | 北京奇虎科技有限公司 | 移动终端通知栏消息的管理方法、装置及移动终端 |
CN107122253A (zh) * | 2017-04-27 | 2017-09-01 | 努比亚技术有限公司 | 消息状态存储方法、装置及计算机可读存储介质 |
CN109936621A (zh) * | 2019-01-28 | 2019-06-25 | 平安科技(深圳)有限公司 | 信息安全的多页面消息推送方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318614B2 (en) * | 2015-07-01 | 2019-06-11 | Tnq Books And Journals Private Limited | Transformation of marked-up content into a file format that enables automated browser based pagination |
-
2020
- 2020-09-22 CN CN202011003432.XA patent/CN112131222B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221812A (zh) * | 2006-08-28 | 2008-07-16 | 三星电子株式会社 | 具有多页复录功能的闪存器件及相关的块替换方法 |
CN101739544A (zh) * | 2008-11-13 | 2010-06-16 | 索尼爱立信移动通信日本株式会社 | 读取图案图像的方法、装置、程序以及信息处理方法 |
CN102984396A (zh) * | 2012-12-25 | 2013-03-20 | 广州从兴电子开发有限公司 | 活跃用户数统计方法及装置 |
CN105119955A (zh) * | 2015-07-09 | 2015-12-02 | 中国科学院计算技术研究所 | 一种分布式文件系统中读目录多页支持的方法及系统 |
CN105808235A (zh) * | 2016-02-24 | 2016-07-27 | 北京奇虎科技有限公司 | 移动终端通知栏消息的管理方法、装置及移动终端 |
CN107122253A (zh) * | 2017-04-27 | 2017-09-01 | 努比亚技术有限公司 | 消息状态存储方法、装置及计算机可读存储介质 |
CN109936621A (zh) * | 2019-01-28 | 2019-06-25 | 平安科技(深圳)有限公司 | 信息安全的多页面消息推送方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
A randomized controlled trial of public messaging to promote safe firearm storage among U.S. military veterans;Elizabeth Karrasa 等;《Social Science & Medicine》;1-9 * |
实时数据分页显示技术在MES中的应用;张新生 等;《信息与电脑》;8-10 * |
Also Published As
Publication number | Publication date |
---|---|
CN112131222A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339186B (zh) | 工作流引擎数据同步方法、装置、介质及电子设备 | |
US7584209B2 (en) | Flexible file format for updating an address book | |
CN110263277B (zh) | 页面数据的显示方法、更新方法、装置、设备及存储介质 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN111581239A (zh) | 缓存刷新方法和电子设备 | |
CN112131222B (zh) | 消息读取状态数据的存储方法、装置、介质及电子设备 | |
CN113900966A (zh) | 一种基于Cache的访存方法及装置 | |
CN113688193A (zh) | 轨迹数据的存储与索引方法、装置、电子设备及可读介质 | |
CN109873861B (zh) | 跨区块链节点的交互方法及装置、存储介质及电子设备 | |
CN114281876A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113918659A (zh) | 数据操作方法、装置、存储介质及电子设备 | |
CN117749747A (zh) | 消息处理方法、装置、电子设备及系统 | |
CN104951528A (zh) | 一种数据迁移的方法及终端 | |
CN112162951A (zh) | 一种信息检索方法、服务器及存储介质 | |
CN109614592B (zh) | 文本的处理方法、装置、存储介质和电子设备 | |
CN114222317B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN115840559A (zh) | 动态配置的异构接口数据转换方法、装置、设备及介质 | |
CN112287177B (zh) | 一种创建、变更、显示和查询对象标签的方法和装置 | |
CN111831620B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN112948141A (zh) | 一种基于消息中间件的数据处理方法、装置和系统 | |
CN113778977A (zh) | 数据处理方法和数据处理装置 | |
CN112800006A (zh) | 用于网络设备的日志存储方法及装置 | |
CN110928898A (zh) | 数据采集方法、数据采集装置、存储介质及电子设备 | |
CN117113090B (zh) | 数据源标签标注方法、装置及电子设备 | |
CN115982206B (zh) | 一种处理数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210203 Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant after: Shenzhen saiante Technology Service Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |