CN103188297B - 一种消息存储和获取方法及系统 - Google Patents
一种消息存储和获取方法及系统 Download PDFInfo
- Publication number
- CN103188297B CN103188297B CN201110449787.6A CN201110449787A CN103188297B CN 103188297 B CN103188297 B CN 103188297B CN 201110449787 A CN201110449787 A CN 201110449787A CN 103188297 B CN103188297 B CN 103188297B
- Authority
- CN
- China
- Prior art keywords
- message
- entity
- buffer memory
- buffer storage
- buffer
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种基于浏览器/服务器结构的消息存储方法,在浏览器与存储消息的数据库之间设置缓存,所述缓存包括用于存储消息的消息实体缓存、消息发送者的发件箱缓存和消息接收者的收件箱缓存;当发送者发送一条消息给其他接收者时,将该消息缓存在消息实体缓存中,在发送者的发件箱缓存和接受者的收件箱缓存中分别存入一条该消息的关联信息记录。本发明还涉及一种基于浏览器/服务器结构的消息存储系统,以及一种消息获取方法及系统。本发明通过在浏览器和数据库之间设置缓存层,有效地减少了对数据库频繁操作对数据库所造成的压力,提高了消息传递的效率。
Description
技术领域
本发明属于网络传输技术领域,具体涉及一种基于B/S结构的消息存储和获取方法及系统。
背景技术
企业内部消息传输系统的消息是类似于电子邮箱的一种工具,企业员工可以给企业内部的一人或多人发送消息。它可以帮助使用系统的企业实现内部沟通,管理员与普通成员、普通成员与普通成员之间的相互交流和沟通。
但是当每一个用户登录系统之后,都必须访问数据库去查询是否有新的消息。显然,如果用户比较多,则必然会对数据库产生比较大的压力。或者当每个用户浏览收件箱或者发件箱中的每条消息时,也需要访问数据库,从数据库中检索消息的内容和相关的状态。如果消息量比较大,也必然会对数据库产生比较大的压力,从而造成消息的传输效率较低。
发明内容
针对现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种数据库压力较小的消息存储和获取方法及系统。
为解决上述技术问题,本发明采用的技术方案如下:
一种基于浏览器/服务器结构的消息存储方法,在浏览器与存储消息的数据库之间设置缓存,所述缓存包括用于存储消息的消息实体缓存、消息发送者的发件箱缓存和消息接收者的收件箱缓存;
当发送者发送一条消息给其他接收者时,将该消息缓存在消息实体缓存中,在发送者的发件箱缓存和接收者的收件箱缓存中分别存入一条该消息的关联信息记录。
一种采用上述方法存储的消息获取方法,包括以下步骤:
浏览器发出获取消息命令;
在消息实体缓存中查找该消息是否存在,如果存在,则直接在消息实体缓存中获取消息,返回浏览器;如果不存在,则查找数据库,从数据库中获取该消息,返回浏览器;并判断该消息是否需要存入消息实体缓存中,如果需要,则将该消息存入消息实体缓存中。
一种基于浏览器/服务器结构的消息存储系统,包括用于缓存发送者发送的消息的消息实体缓存装置,用于缓存消息的关联信息的发件箱缓存装置和收件箱缓存装置;
用于当发送者发送一条消息给其他接收者时,将该消息缓存在消息实体缓存装置中,在发送者的发件箱缓存装置和接收者的收件箱缓存装置中分别存入一条该消息的关联信息记录的存入装置。
一种采用上述系统存储的消息获取系统,包括用于在消息实体缓存装置中查找消息是否存在的查找装置;
用于当消息实体缓存装置中存在查找的消息时,直接在消息实体缓存装置中获取消息,返回浏览器的第一获取装置;
用于当消息实体缓存装置中存在查找的消息时,查找数据库,从数据库中获取该消息,返回浏览器的第二获取装置;
用于判断消息是否需要存入消息实体缓存装置中的判断装置;
用于当需要将消息存入消息实体缓存装置中时,将该消息存入消息实体缓存装置中的存储装置。
本发明所述方法及系统,通过在浏览器和数据库之间设置缓存层,有效地减少了对数据库频繁操作对数据库所造成的压力,提高了消息传递的效率。
附图说明
图1是实施方式1中消息存储系统的结构框图;
图2是实施方式1中消息实体表结构示意图;
图3是实施方式1中消息实体和用户关联关系表结构示意图;
图4是实施方式2中消息获取系统的结构框图;
图5是实施方式2中消息获取方法的流程图。
具体实施方式
本发明的核心思想是:先将消息缓存在内存中,在一段时间内的消息都从缓存中获取,不需要频繁访问和操作数据库。下面结合附图对本发明的具体实施方式进行详细描述。
实施方式1
本实施方式记载了一种基于B/S(浏览器/服务器)结构的消息存储系统及方法。如图1所示,该系统包括消息实体缓存装置11、发件箱缓存装置12、收件箱缓存装置13、存入装置14、刷新装置15、删除装置16和清理装置17。
消息实体缓存装置11用于缓存消息发送者发出的消息。发件箱缓存装置12和收件箱缓存装置13用于缓存消息的关联信息。
存入装置14用于当发送者发送一条消息给其他接收者时,将该消息缓存在消息实体缓存装置11中,在发送者的发件箱缓存装置12和接收者的收件箱缓存装置13中分别存入一条该消息的关联信息记录。
刷新装置15用于定时一同刷新消息实体缓存装置11、发件箱缓存装置12和收件箱缓存装置13。
删除装置16用于删除发件箱缓存装置12、收件箱缓存装置13和消息实体缓存装置11中的消息。
清理装置17用于定期清理消息实体缓存装置11中缓存的消息,并将清理掉的信息写入到数据库中。
当发送者发送一条消息给其他接收者时,存入装置14将该消息缓存在消息实体缓存装置11中,在发送者的发件箱缓存装置12和接收者的收件箱缓存装置13中分别存入一条该消息的关联信息记录。只有当所有缓存装置均存储成功后,该消息才算发送成功。
为了保证消息状态的正常,刷新装置15定时一同刷新所述消息实体缓存装置11、发件箱缓存装置12和收件箱缓存装置13。
当发送者发送一条消息时,在消息实体缓存装置中消息实体表、消息实体和用户关联关系表中插入一条新的记录。如图2所示,消息实体表存储消息ID、消息类型和消息内容。如图3所示,消息实体和用户关联关系表中存储消息ID、消息接收者ID和消息发送者ID。
当所有消息发送者的发件箱缓存装置12和消息接收者的收件箱缓存装置13中均删除消息的关联信息记录时,删除装置16删除消息实体缓存装置11中的该消息。
考虑到缓存的压力,清理装置17可以定期强制清理消息实体缓存装置11。可以清理消息实体缓存装置11中的部分信息,也可以清空消息实体缓存装置11中的全部信息。同时,将消息实体缓存装置11中清理掉的信息写入到数据库中。为了保障数据的统一性,对消息实体缓存装置11中消息的操作与对数据库中相同消息的操作以类似事务的形式完成,即当更新消息实体缓存装置11中的消息时,同时更新数据库中该消息。
实施方式2
本实施方式记载了获取采用实施方式1所述方式存储的消息的系统及方法。如图4所示,该系统包括查找装置41、第一获取装置42、第二获取装置43、判断装置44和存储装置45。
查找装置41包括用于当浏览器发出获取消息命令时,在消息实体缓存装置中查找消息是否存在。第一获取装置42用于当消息实体缓存装置中存在查找的消息时,直接在消息实体缓存装置中获取消息,返回浏览器。第二获取装置43用于当消息实体缓存装置中存在查找的消息时,查找数据库,从数据库中获取该消息,返回浏览器。判断装置44用于判断消息是否需要存入消息实体缓存装置中。存储装置45用于当需要将消息存入消息实体缓存装置中时,将该消息存入消息实体缓存装置中。
如图5所示,采用图4所示系统获取消息的方法包括以下步骤:
(1)浏览器发出获取消息命令。
优选的,浏览器采用轮询的方式来实现对消息的获取,因为消息实体缓存装置的存在,对消息的获取可以提高刷新频率,增强实时性。
(2)查找装置41在消息实体缓存装置中查找该消息是否存在,如果存在,则第一获取装置42直接在消息实体缓存装置中获取消息,返回浏览器;如果不存在,则第二获取装置43查找数据库,从数据库中获取该消息,返回浏览器。
(3)判断装置44判断该消息是否需要存入消息实体缓存装置中,如果需要,则存储装置45将该消息存入消息实体缓存装置中。
接收者在阅读新消息时,如果所述消息从缓存中获取,则同时在消息实体缓存装置、发送者的发件箱缓存装置、接收者的收件箱缓存装置中将该消息置为已读状态。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种基于浏览器/服务器结构的消息存储方法,其特征在于:在浏览器与存储消息的数据库之间设置缓存,所述缓存包括用于存储消息的消息实体缓存、消息发送者的发件箱缓存和消息接收者的收件箱缓存;
当发送者发送一条消息给其他接收者时,将该消息缓存在消息实体缓存中,在发送者的发件箱缓存和接收者的收件箱缓存中分别存入一条该消息的关联信息记录;
其中,当发送者发送一条消息时,在消息实体缓存中消息实体表、消息实体和用户关联关系表中插入一条新的记录;所述消息实体表存储消息ID、消息类型和消息内容;所述消息实体和用户关联关系表中存储消息ID、消息接收者ID和消息发送者ID。
2.如权利要求1所述的消息存储方法,其特征在于:所述方法还包括定时一同刷新所述消息实体缓存、发件箱缓存和收件箱缓存的步骤。
3.如权利要求1或2所述的消息存储方法,其特征在于:当所有消息发送者的发件箱缓存和消息接收者的收件箱缓存中均删除消息的关联信息记录时,删除消息实体缓存中的该消息。
4.如权利要求1或2所述的消息存储方法,其特征在于:定期将所述消息实体缓存中存储的信息写入到数据库中,清空所述消息实体缓存。
5.一种采用权利要求1所述方法存储的消息获取方法,其特征在于,包括以下步骤:
浏览器发出获取消息命令;
在消息实体缓存中查找该消息是否存在,如果存在,则直接在消息实体缓存中获取消息,返回浏览器;如果不存在,则查找数据库,从数据库中获取该消息,返回浏览器;并判断该消息是否需要存入消息实体缓存中,如果需要,则将该消息存入消息实体缓存中;
其中,将消息存入消息实体缓存中时,在消息实体缓存中消息实体表、消息实体和用户关联关系表中插入一条新的记录;所述消息实体表存储消息ID、消息类型和消息内容;所述消息实体和用户关联关系表中存储消息ID、消息接收者ID和消息发送者ID。
6.如权利要求5所述的消息获取方法,其特征在于:浏览器采用轮询的方式发出获取消息命令。
7.如权利要求5所述的消息读取方法,其特征在于:如果所述消息从缓存中获取,则同时在消息实体缓存、发送者的发件箱缓存、接收者的收件箱缓存中将该消息置为已读状态。
8.一种基于浏览器/服务器结构的消息存储系统,其特征在于:包括设置在浏览器与存储消息的数据库之间的缓存层,缓存层包括用于缓存发送者发送的消息的消息实体缓存装置(11),用于缓存消息的关联信息的发件箱缓存装置(12)和收件箱缓存装置(13);
用于当发送者发送一条消息给其他接收者时,将该消息缓存在消息实体缓存装置中,在发送者的发件箱缓存装置和接收者的收件箱缓存装置中分别存入一条该消息的关联信息记录的存入装置(14);
其中,存入装置(14)在将消息缓存在消息实体缓存装置中时,在消息实体缓存装置中消息实体表、消息实体和用户关联关系表中插入一条新的记录;所述消息实体表存储消息ID、消息类型和消息内容;所述消息实体和用户关联关系表中存储消息ID、消息接收者ID和消息发送者ID。
9.如权利要求8所述的消息存储系统,其特征在于:所述系统还包括用于定时一同刷新所述消息实体缓存装置、发件箱缓存装置和收件箱缓存装置的刷新装置(15)。
10.如权利要求8所述的消息存储系统,其特征在于:所述系统还包括用于删除发件箱缓存装置、收件箱缓存装置和消息实体缓存装置中消息的删除装置(16)。
11.如权利要求8~10中任一项所述的消息存储系统,其特征在于:用于定期清理所述消息实体缓存装置中存储的信息,并将清理掉的信息写入到数据库中的清理装置(17)。
12.如权利要求11所述的消息存储系统,其特征在于:当更新消息实体缓存装置中的消息时,同时更新数据库中该消息。
13.一种采用权利要求8所述系统存储的消息获取系统,其特征在于:包括用于在消息实体缓存装置中查找消息是否存在的查找装置(41);
用于当消息实体缓存装置中存在查找的消息时,直接在消息实体缓存装置中获取消息,返回浏览器的第一获取装置(42);
用于当消息实体缓存装置中不存在查找的消息时,查找数据库,从数据库中获取该消息,返回浏览器的第二获取装置(43);
用于判断消息是否需要存入消息实体缓存装置中的判断装置(44);
用于当需要将消息存入消息实体缓存装置中时,将该消息存入消息实体缓存装置中的存储装置(45);
其中,存储装置(45)在将消息缓存在消息实体缓存装置中时,在消息实体缓存装置中消息实体表、消息实体和用户关联关系表中插入一条新的记录;所述消息实体表存储消息ID、消息类型和消息内容;所述消息实体和用户关联关系表中存储消息ID、消息接收者ID和消息发送者ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110449787.6A CN103188297B (zh) | 2011-12-29 | 2011-12-29 | 一种消息存储和获取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110449787.6A CN103188297B (zh) | 2011-12-29 | 2011-12-29 | 一种消息存储和获取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103188297A CN103188297A (zh) | 2013-07-03 |
CN103188297B true CN103188297B (zh) | 2016-05-18 |
Family
ID=48679262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110449787.6A Expired - Fee Related CN103188297B (zh) | 2011-12-29 | 2011-12-29 | 一种消息存储和获取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103188297B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138543A (zh) * | 2015-07-09 | 2015-12-09 | 广州杰赛科技股份有限公司 | 一种数据的存储方法及系统 |
CN110311855B (zh) * | 2019-06-25 | 2022-05-31 | 广州虎牙科技有限公司 | 用户消息处理方法、装置、电子设备及存储介质 |
CN113824763B (zh) * | 2021-08-10 | 2024-03-01 | 武汉联影医疗科技有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110088A (zh) * | 2007-04-17 | 2008-01-23 | 南京中兴软创科技有限责任公司 | 基于缓存技术的数据库访问接口方法 |
CN101646140A (zh) * | 2008-08-05 | 2010-02-10 | 中兴通讯股份有限公司 | 消息日志处理方法和系统 |
CN101937467A (zh) * | 2010-09-17 | 2011-01-05 | 北京开心人信息技术有限公司 | 一种服务器的高效缓存方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2350875A1 (en) * | 2008-09-19 | 2011-08-03 | Oracle International Corporation | Storage-side storage request management |
-
2011
- 2011-12-29 CN CN201110449787.6A patent/CN103188297B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110088A (zh) * | 2007-04-17 | 2008-01-23 | 南京中兴软创科技有限责任公司 | 基于缓存技术的数据库访问接口方法 |
CN101646140A (zh) * | 2008-08-05 | 2010-02-10 | 中兴通讯股份有限公司 | 消息日志处理方法和系统 |
CN101937467A (zh) * | 2010-09-17 | 2011-01-05 | 北京开心人信息技术有限公司 | 一种服务器的高效缓存方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103188297A (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133882B (zh) | 一种基于hdfs的小文件处理方法 | |
CN103116634B (zh) | 支持高并发缓存任务队列的系统及其异步批量操作方法 | |
CN101510209B (zh) | 实现实时检索的方法、系统和服务器 | |
CN100586112C (zh) | 即时通讯中建立联系人列表、管理联系人信息的方法 | |
CN104156400B (zh) | 一种海量网络流数据的存储方法及装置 | |
CN105608188A (zh) | 数据处理方法和数据处理装置 | |
CN101673192B (zh) | 时序化的数据处理方法、装置及系统 | |
CN101839997B (zh) | 一种地震数据并行存储系统 | |
CN103188297B (zh) | 一种消息存储和获取方法及系统 | |
CN1996305A (zh) | 一种数据存储及读取方法及装置以及数据传输系统 | |
CN102158349A (zh) | 一种日志管理装置及方法 | |
CN104346458B (zh) | 数据存储方法和存储设备 | |
JP5631886B2 (ja) | 常にレディ状態のクライアント/サーバ同期 | |
WO2013028336A2 (en) | Synchronizing conversation structures in web-based email systems | |
CN102158550B (zh) | 一种基于iec61850电能质量暂态数据传输方法 | |
CN105915619B (zh) | 顾及访问热度的网络空间信息服务高性能内存缓存方法 | |
CN103345486A (zh) | 应用于远程浏览环境下客户端获取和展示图形文件的方法 | |
CN109165207B (zh) | 基于Hadoop的饮用水海量数据存储管理方法和系统 | |
CN101826077B (zh) | 关系联系人记录获取方法及装置 | |
CN108520052B (zh) | 慢查询信息检索方法、装置、服务器及可读存储介质 | |
CN104298747A (zh) | 大数据量图片的存储方法、以及检索方法 | |
CN101197844B (zh) | 基于发布订阅系统的文件存储方法 | |
CN104065617B (zh) | 一种骚扰邮件处理方法、装置和系统 | |
CN104156327A (zh) | 一种分布式文件系统中写回模式下对象掉电识别方法 | |
US8805942B2 (en) | Storing and partitioning email messaging data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160518 Termination date: 20161229 |