CN116595014B - 一种已读回执的存储***、方法、装置及可读存储介质 - Google Patents
一种已读回执的存储***、方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN116595014B CN116595014B CN202310876508.7A CN202310876508A CN116595014B CN 116595014 B CN116595014 B CN 116595014B CN 202310876508 A CN202310876508 A CN 202310876508A CN 116595014 B CN116595014 B CN 116595014B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- read receipt
- bloom filter
- response piece
- 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 33
- 230000004044 response Effects 0.000 claims abstract description 54
- 230000006870 function Effects 0.000 claims description 21
- 238000011084 recovery Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 12
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000033764 rhythmic process 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
- G06F16/2255—Hash tables
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/224—Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出的一种已读回执的存储***、方法、装置及可读存储介质,属于通信技术领域,所述***包括:应用服务器和关系型数据库,应用服务器,用于接收消息接收方客户端发送的已读回执的数据请求,生成已读回执数据,并发送到相应的消息发送方客户端;关系型数据库,用于存储已读回执数据;应用服务器内设有缓存数据库,应用服务器将已读回执数据转换为布隆过滤器的数据结构后,存储在缓存数据库中。本发明通过缓存数据库结合关系型数据库,以及使用布隆过滤器的数据结构,在保证高效读写的前提下,又大大节省了内存的使用。
Description
技术领域
本发明涉及通信技术领域,更具体的说是涉及一种已读回执的存储***、方法、装置及可读存储介质。
背景技术
目前,在进行即时通讯信息交互时,信息发送方需要确认信息接收方是否已经收到并阅读了消息,以便能够更加高效地进行沟通。有了阅读回执功能,可以快速获知消息的阅读状态,从而更好地控制沟通节奏。
即时通讯信息交互大概流程如下:
当信息发送方发送一条消息时,客户端会将这条消息发送给服务端,并在消息中携带一个标识,表示这条消息需要开启已读回执功能。当接收方阅读了这条消息后,客户端会向服务端发送一个请求,请求服务端给发送方发送已读回执。服务端在接收到请求后,会将已读回执的消息发送给发送方的客户端,同时将已读回执数据存储到服务端,从而实现已读回执的功能。
已读回执消息在服务端存储时,由于即时通讯应用的用户量通常很大,而每个用户又会发送大量的消息。如果每条消息都要存储已读回执信息,数据量就会非常庞大。为了应对海量的数据存储,需要选择合适的存储方式进行已读回执消息的存储和管理,目前,已读回执消息主要采用以下几种方式进行存储:
关系型数据库存储:可以将已读状态信息存储在关系型数据库的对应消息表中,但是,关系型数据库在高并发、海量数据情况下性能有限,存储和查询效率较低。
NoSQL 数据库存储:可以使用 NoSQL 数据库存储已读状态信息,如 MongoDB、Cassandra 等。这种方案可以通过分布式、高可用等技术解决数据量大、查询效率低的问题。但是,NoSQL 数据库不支持事务,数据一致性难以保证。
缓存数据库存储:可以使用缓存数据库存储已读状态信息,如 Redis、Memcached等。这种方案可以通过内存高速访问,提高数据查询效率。但是,海量的数据会消耗大量的内存,缓存数据库容易丢失数据等问题。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种已读回执的存储***、方法、装置及可读存储介质,通过缓存数据库结合关系型数据库,以及使用布隆过滤器的数据结构,在保证高效读写的前提下,又大大节省了内存的使用。
本发明为实现上述目的,通过以下技术方案实现:一种已读回执的存储***,包括:应用服务器和关系型数据库,应用服务器和关系型数据库通过网络数据连接;
应用服务器,用于接收消息接收方客户端发送的已读回执的数据请求,生成已读回执数据,并发送到相应的消息发送方客户端;
关系型数据库,用于存储已读回执数据;
应用服务器内设有缓存数据库,应用服务器将已读回执数据转换为布隆过滤器的数据结构后,存储在缓存数据库中。
在本***中,关系型数据库用来做数据持久化和缓存恢复,能够确保数据的完整性和一致性。已读数据以布隆过滤器的数据结构方式存储在缓存数据库中,可以利用布隆过滤器的高效查询和去重功能,同时减少内存使用。
进一步,应用服务器内还设有设置模块,设置模块用于,根据预设算法预估的已读回执数据的数量和误判率,计算出布隆过滤器大小和哈希函数数量,并根据计算结果设置布隆过滤器的容量、容错率和数据过期时间。通过提前计算布隆过滤器的容量大小和容错率,以分配合适的存储空间,确保了查询结果的准确性。
进一步,应用服务器内还设有数据恢复模块,数据恢复模块用于,识别缓存数据库中的已读回执数据,若缓存数据库中的已读回执数据丢失,从关系型数据库中获取已读回执数据,进行数据恢复。通过数据同步机制,实现缓存数据库和关系型数据库中数据的同步,确保数据的一致性。当缓存数据库中的数据丢失时,从关系型数据库中获取最新的数据。实现数据备份和恢复机制,以保证已读回执数据的完整性和一致性。
进一步,应用服务器内还设有扩容模块,扩容模块用于,定期监测布隆过滤器的使用情况,如果缓存数据库中存储的已读回执数据超过了预设的数据量,通过新增布隆过滤器的方式对布隆过滤器进行动态扩容。扩容模块能够在不影响服务的情况下,动态扩容布隆过滤器,根据实际需求,为其分配合适的存储空间,保证了查询效率和内存使用的合理性。
相应的,本发明还公开了一种已读回执的存储方法,包括:
接收消息接收方客户端发送的已读回执的数据请求,并生成已读回执数据;
利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据;
如果缓存数据库中不存在相同的已读回执数据,将已读回执数据存储在缓存数据库中;
将已读回执数据存储在关系型数据库中;
将已读回执数据发送到相应的消息发送方客户端。
进一步,利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据,包括:
以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置;
如果所有位都被设置,则说明已读回执数据已被读取,即缓存数据库中存在相同的已读回执数据,此时直接退出;
如果存在至少一个未被设置的位,则说明已读回执数据还未被读取,即缓存数据库中不存在相同的已读回执数据。
进一步,将已读回执数据存储在缓存数据库中,包括:
将已读回执数据的消息 ID 作为布隆过滤器中的一个哈希函数的输入,并将哈希函数的输出作为布隆过滤器的一个数据位进行设置;
将已读回执数据的接收者 ID 作为布隆过滤器的数据部分添加到所述数据位中。
进一步,所述的方法还包括:
接收任一客户端发送的已读回执查询请求;
根据已读回执查询请求,生成相应的已读回执数据;
以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置;
如果所有位都被设置,则说明已读回执数据已被发送;
如果存在至少一个未被设置的位,则说明已读回执数据还未被发送。
相应的,本发明公开了一种已读回执的存储装置,包括:
存储器,用于存储已读回执的存储程序;
处理器,用于执行所述已读回执的存储程序时实现如上文任一项所述已读回执的存储方法的步骤。
相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有已读回执的存储程序,所述已读回执的存储程序被处理器执行时实现如上文任一项所述已读回执的存储方法的步骤。
对比现有技术,本发明有益效果在于:本发明公开了一种已读回执的存储***、方法、装置及可读存储介质,通过缓存数据库结合关系型数据库,以及使用布隆过滤器的数据结构,在保证高效读写的前提下,又大大节省了内存的使用。本发明通过查询布隆过滤器中是否存在相应的数据位来判断已读回执的状态信息,可以快速地判断已读回执是否已被某个接收者读取。本发明通过数据同步机制,实现缓存数据库和关系型数据库中数据的同步,确保数据的一致性。本发明实现了在不影响服务的情况下,动态扩容布隆过滤器,保证了查询效率和内存使用的合理性。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明的***结构图。
图2是本发明的方法流程图。
图中,1、应用服务器;2、关系型数据库;3、缓存数据库;4、设置模块;5、数据恢复模块;6、扩容模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
如图1所示,本实施例提供了一种已读回执的存储***,包括:应用服务器1和关系型数据库2,应用服务器1和关系型数据库2通过网络数据连接。
应用服务器1,用于接收消息接收方客户端发送的已读回执的数据请求,生成已读回执数据,并发送到相应的消息发送方客户端。
关系型数据库2,用于存储已读回执数据。
应用服务器1内设有缓存数据库3、设置模块4、数据恢复模块5和扩容模块6。
应用服务器1将已读回执数据转换为布隆过滤器的数据结构后,存储在缓存数据库3中。
设置模块4用于:根据预设算法预估的已读回执数据的数量和误判率,计算出布隆过滤器大小和哈希函数数量,并根据计算结果设置布隆过滤器的容量、容错率和数据过期时间。通过提前计算布隆过滤器的容量大小和容错率,以分配合适的存储空间,确保了查询结果的准确性。
数据恢复模块5用于,识别缓存数据库中的已读回执数据,若缓存数据库中的已读回执数据丢失,从关系型数据库中获取已读回执数据,进行数据恢复。通过数据同步机制,实现缓存数据库和关系型数据库中数据的同步,确保数据的一致性。当缓存数据库中的数据丢失时,从关系型数据库中获取最新的数据。实现数据备份和恢复机制,以保证已读回执数据的完整性和一致性。
作为示例的,数据恢复模块5通过执行以下流程实现数据恢复:
从关系型数据库2中获取全部已读回执数据,然后遍历每个已读回执数据,将其中的消息 ID 和接收者 ID 再次添加到缓存数据库的布隆过滤器中。
扩容模块6用于,定期监测布隆过滤器的使用情况,如果缓存数据库中存储的已读回执数据超过了预设的数据量,通过新增布隆过滤器的方式对布隆过滤器进行动态扩容。扩容模块能够在不影响服务的情况下,动态扩容布隆过滤器,根据实际需求,为其分配合适的存储空间,保证了查询效率和内存使用的合理性。
基于上述***架构可知,关系型数据库2用来做数据持久化和缓存恢复,确保了数据的完整性和一致性。已读回执数据以布隆过滤器的数据结构方式存储在缓存数据库3中,可以利用布隆过滤器的高效查询和去重功能,同时减少内存使用。
本***还能够提前计算布隆过滤器的容量大小和容错率,根据计算结果分配合适的存储空间,确保查询结果的准确性。为布隆过滤器设置合适的过期时间,以减少内存的占用。同时可以根据实际需求,动态扩容布隆过滤器,保证查询效率和内存使用的合理性。
实施例二:
基于实施例一,如图2所示,本发明还公开了一种已读回执的存储方法,包括如下步骤:
S1:接收消息接收方客户端发送的已读回执的数据请求,并生成已读回执数据。
需要特别说明的是,生成已读回执数据需要转换为布隆过滤器的数据结构后,暂时存储在应用服务器的缓存数据库中。因此,需要在缓存数据库中进行布隆过滤器的初始化。具体如下:
1、根据产品要求设置合适的布隆过滤器的容量大小和容错率。由于容量大小决定了布隆过滤器可以存储多少个消息的已读状态,容错率决定了误判率的大小。所以需要根据预估的已读状态数量和误判率,计算出适当的布隆过滤器大小和哈希函数数量,并进行相应的参数设置。
2、为布隆过滤器设置合适的过期时间,从而减少对内存的占用。根据产品要求设置合适的过期时间,过期时间到期后,相应的已读状态信息会自动从缓存数据库中删除。
S2:利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据。若是,则执行步骤S6,若否,则执行步骤S3。
具体来说,首先以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置。
如果所有位都被设置,则说明已读回执数据已被读取,即缓存数据库中存在相同的已读回执数据。
如果存在至少一个未被设置的位,则说明已读回执数据还未被读取,即缓存数据库中不存在相同的已读回执数据。
S3:将已读回执数据存储在缓存数据库中。
具体包括:将已读回执数据的消息 ID 作为布隆过滤器中的一个哈希函数的输入,并将哈希函数的输出作为布隆过滤器的一位进行设置。同时,将已读回执数据的接收者ID 作为布隆过滤器的数据部分添加到该位中。
S4:将已读回执数据存储在关系型数据库中。
需要特别说明的,关系型数据库中同步存储的已读回执数据为应用服务器生成的原始数据,并非布隆过滤器的结构数据。
S5:将已读回执数据发送到相应的消息发送方客户端。
通过上述步骤可知,通过查询后,已经确认已读回执数据未被发出,且完成了已读回执数据同步存储,此时可将原始了已读回执数据发出。
S6:直接退出。
在一些实施例中,本方法在执行过程中还会实时接收到客户端发送的已读回执查询请求。当接收到任一客户端发送的已读回执查询请求后,首先根据已读回执查询请求,生成相应的已读回执数据。此时可利用布隆过滤器进行数据查询,具体来说:以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置;如果所有位都被设置,则说明已读回执数据已被发送;如果存在至少一个未被设置的位,则说明已读回执数据还未被发送。
实施例三:
本实施例公开了一种已读回执的存储装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的已读回执的存储升级程序时实现以下步骤:
1、接收消息接收方客户端发送的已读回执的数据请求,并生成已读回执数据。
2、利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据。
3、如果缓存数据库中不存在相同的已读回执数据,将已读回执数据存储在缓存数据库中。
4、将已读回执数据存储在关系型数据库中。
5、将已读回执数据发送到相应的消息发送方客户端。
在具体实施方式中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:
接收任一客户端发送的已读回执查询请求;
根据已读回执查询请求,生成相应的已读回执数据;
以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置;
如果所有位都被设置,则说明已读回执数据已被发送;
如果存在至少一个未被设置的位,则说明已读回执数据还未被发送。
进一步的,本实施例中的已读回执的存储装置,还可以包括:
输入接口,用于获取外界导入的已读回执的存储程序,并将获取到的已读回执的存储程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于USB接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于USB接口、串行接口等。
通讯单元,用于在已读回执的存储装置和外部服务器之间建立远程通讯连接,以便于已读回执的存储装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
显示器,用于运行已读回执的存储过程的相关信息进行实时显示。
鼠标,可以用于协助用户输入数据并简化用户的操作。
实施例四:
本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动硬盘、CD-ROM或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有已读回执的存储程序,所述已读回执的存储程序被处理器执行时实现以下步骤:
1、接收消息接收方客户端发送的已读回执的数据请求,并生成已读回执数据。
2、利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据。
3、如果缓存数据库中不存在相同的已读回执数据,将已读回执数据存储在缓存数据库中。
4、将已读回执数据存储在关系型数据库中。
5、将已读回执数据发送到相应的消息发送方客户端。
综上所述,本发明通过缓存数据库结合关系型数据库,以及使用布隆过滤器的数据结构,在保证高效读写的前提下,又大大节省了内存的使用。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的***相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的***、***和方法,可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,***或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的已读回执的存储方法、***、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (6)
1.一种已读回执的存储***,其特征在于,包括:应用服务器和关系型数据库,应用服务器和关系型数据库通过网络数据连接;
应用服务器,用于接收消息接收方客户端发送的已读回执的数据请求,生成已读回执数据,并发送到相应的消息发送方客户端;
关系型数据库,用于存储已读回执数据;
应用服务器内设有缓存数据库、数据恢复模块和扩容模块;
应用服务器将已读回执数据转换为布隆过滤器的数据结构后,存储在缓存数据库中;
数据恢复模块用于,识别缓存数据库中的已读回执数据,若缓存数据库中的已读回执数据丢失,从关系型数据库中获取已读回执数据,进行数据恢复;
扩容模块用于,定期监测布隆过滤器的使用情况,如果缓存数据库中存储的已读回执数据超过了预设的数据量,通过新增布隆过滤器的方式对布隆过滤器进行动态扩容。
2.根据权利要求1所述的已读回执的存储***,其特征在于,所述应用服务器内还设有设置模块,设置模块用于,根据预设算法预估的已读回执数据的数量和误判率,计算出布隆过滤器大小和哈希函数数量,并根据计算结果设置布隆过滤器的容量、容错率和数据过期时间。
3.一种已读回执的存储方法,其特征在于,包括:
接收消息接收方客户端发送的已读回执的数据请求,并生成已读回执数据;
利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据;
如果缓存数据库中不存在相同的已读回执数据,将已读回执数据存储在缓存数据库中;
将已读回执数据存储在关系型数据库中;
将已读回执数据发送到相应的消息发送方客户端;
所述利用布隆过滤器查询缓存数据库中是否存在相同的已读回执数据,包括:
以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置;
如果所有位都被设置,则说明已读回执数据已被读取,即缓存数据库中存在相同的已读回执数据,此时直接退出;
如果存在至少一个未被设置的位,则说明已读回执数据还未被读取,即缓存数据库中不存在相同的已读回执数据;
所述将已读回执数据存储在缓存数据库中,包括:
将已读回执数据的消息 ID 作为布隆过滤器中的一个哈希函数的输入,并将哈希函数的输出作为布隆过滤器的一个数据位进行设置;
将已读回执数据的接收者 ID 作为布隆过滤器的数据部分添加到所述数据位中。
4.根据权利要求3所述的已读回执的存储方法,其特征在于,所述方法还包括:
接收任一客户端发送的已读回执查询请求;
根据已读回执查询请求,生成相应的已读回执数据;
以已读回执数据的消息 ID 和接收者 ID 为输入,使用布隆过滤器的哈希函数计算其哈希值并查询对应的位是否被设置;
如果所有位都被设置,则说明已读回执数据已被发送;
如果存在至少一个未被设置的位,则说明已读回执数据还未被发送。
5.一种已读回执的存储装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求3至4任一项所述已读回执的存储方法步骤。
6.一种可读存储介质,其特征在于:所述可读存储介质上存储有已读回执的存储程序,所述已读回执的存储程序被处理器执行时实现如权利要求3至4任一项权利要求所述的已读回执的存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310876508.7A CN116595014B (zh) | 2023-07-18 | 2023-07-18 | 一种已读回执的存储***、方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310876508.7A CN116595014B (zh) | 2023-07-18 | 2023-07-18 | 一种已读回执的存储***、方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116595014A CN116595014A (zh) | 2023-08-15 |
CN116595014B true CN116595014B (zh) | 2023-09-26 |
Family
ID=87599537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310876508.7A Active CN116595014B (zh) | 2023-07-18 | 2023-07-18 | 一种已读回执的存储***、方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116595014B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117420953B (zh) * | 2023-10-07 | 2024-03-26 | 国家电网有限公司华东分部 | 数据存储方法及装置、计算机设备和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572727A (zh) * | 2013-10-22 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN110719145A (zh) * | 2018-07-13 | 2020-01-21 | 深圳兆日科技股份有限公司 | 已读回执发送方法、装置及计算机可读存储介质 |
CN111580965A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 数据请求的处理方法及*** |
CN113079083A (zh) * | 2021-03-25 | 2021-07-06 | 北京齐尔布莱特科技有限公司 | 消息处理方法、客户端、服务器和即时通信*** |
CN114138833A (zh) * | 2021-11-30 | 2022-03-04 | 广州市诚毅科技软件开发有限公司 | 用于关系型数据库与缓存数据库数据同步的方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990243B2 (en) * | 2011-11-23 | 2015-03-24 | Red Hat, Inc. | Determining data location in a distributed data store |
US11954125B2 (en) * | 2020-05-22 | 2024-04-09 | Yahoo Assets Llc | Partitioned backing store implemented in a distributed database |
-
2023
- 2023-07-18 CN CN202310876508.7A patent/CN116595014B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572727A (zh) * | 2013-10-22 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN110719145A (zh) * | 2018-07-13 | 2020-01-21 | 深圳兆日科技股份有限公司 | 已读回执发送方法、装置及计算机可读存储介质 |
CN111580965A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 数据请求的处理方法及*** |
CN113079083A (zh) * | 2021-03-25 | 2021-07-06 | 北京齐尔布莱特科技有限公司 | 消息处理方法、客户端、服务器和即时通信*** |
CN114138833A (zh) * | 2021-11-30 | 2022-03-04 | 广州市诚毅科技软件开发有限公司 | 用于关系型数据库与缓存数据库数据同步的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN116595014A (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6745884B2 (ja) | データ同期方法、装置及びシステム | |
CN116595014B (zh) | 一种已读回执的存储***、方法、装置及可读存储介质 | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
WO2020177536A1 (zh) | 交易去重方法、交易构造方法、设备和存储介质 | |
WO2008052453A1 (fr) | Procédé de rafraîchissement synchrone de données de topologie de gestion de réseau côté client et côté serveur | |
CN113886494A (zh) | 即时通讯的消息存储方法、装置、设备及计算机可读介质 | |
CN115934414A (zh) | 数据备份方法、数据恢复方法、装置、设备及存储介质 | |
CN109710502B (zh) | 日志传输方法、装置及存储介质 | |
CN107395443A (zh) | 一种分布式集群管理方法、装置及*** | |
CN117056246A (zh) | 一种数据缓存方法及*** | |
CN114218317B (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN101453481A (zh) | 一种通过缓存实现通知的方法 | |
CN114490540B (zh) | 数据存储方法、介质、装置和计算设备 | |
EP3751820A1 (en) | Data acquisition method, service provider terminal, service user terminal, and network function entity | |
CN115437824A (zh) | 一种高速缓存控制方法、***及相关组件 | |
CN114691703A (zh) | 数据更新方法、装置、电子设备及存储介质 | |
CN114827967A (zh) | 软件更新方法、蓝牙设备及存储介质 | |
CN113744013A (zh) | 订单号的生成方法、装置、服务器及存储介质 | |
CN112015807A (zh) | 数据同步的处理方法、装置、电子设备及计算机存储介质 | |
CN116401317B (zh) | 一种缓存数据同步方法、装置、电子设备及介质 | |
CN112416871B (zh) | 一种数据访问的方法、装置及*** | |
CN113094397B (zh) | 数据存储和查询响应方法、区块执行方法 | |
CN113722362B (zh) | 一种基于远端的缓存数据查询方法、装置及*** | |
CN113608703B (zh) | 数据处理方法及装置 | |
CN112818019A (zh) | 一种应用于Redis客户端的查询请求过滤方法及Redis客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A storage system, method, device, and readable storage medium for a read receipt Granted publication date: 20230926 Pledgee: Jinan Branch of Qingdao Bank Co.,Ltd. Pledgor: ZHONGFU INFORMATION Co.,Ltd. Registration number: Y2024980023941 |