一种群组消息服务端存储方法与流程

文档序号:17988901发布日期:2019-06-22 00:37阅读:155来源:国知局
一种群组消息服务端存储方法与流程

本发明涉及即时通讯的技术领域,尤其是涉及一种群组消息服务端存储方法。



背景技术:

在市面上现有的即时通讯应用中,不同用户之间可以组成一个消息群,在活跃度比较高的消息群里,会出现大量的消息(每个用户都可能发消息,群人数越多,消息越多)。

目前对于这些大量的消息,一般存在两种传统的储存方式。方式一是通过用户终端存储(如存在本地手机),这种方式有明显缺点,如用户清空手机缓存后,消息丢失,或者新用户加入群组后,很难同步到历史消息。方式二是保存在服务端,常用的方式是保存在数据库,但用户同步消息时,速度比较慢,同时对数据库造成比较大的压力,上述两种方式见图8。

上述中的现有技术方案存在以下缺陷:两种传统储存方式均不利于不同用户在消息群组中进行即时便捷的通讯交流,还有改进的空间。



技术实现要素:

本发明的目的是提供一种具有通过缓存结构提高了不同用户在消息群组中沟通效率的效果的群组消息服务端存储方法。

本发明的上述发明目的是通过以下技术方案得以实现的:

一种群组消息服务端存储方法,包括:

s100:服务器于消息群组创建时,同时创建对应消息群组内消息的缓存结构;

s200:服务器将接收到的新消息同步到缓存结构中;

s300:服务器基于目前同步至缓存结构中的消息总条数调节缓存结构;

s400:服务器实时查询缓存结构中的消息,并于终端设备的显示界面即时显示缓存结构中的消息。

通过采用上述技术方案,通过步骤s100、步骤s200中缓存结构的设置可以在实现消息实时存储的同时即时显示新消息,从而加快了不同用户之间沟通效率,步骤s300的设置可以基于消息总条数相应的调整缓存结构,从而提高缓存结构的工作效率,避免缓存结构出现消息积累过多工作效率的现象。

本发明进一步设置为:s100包括:

s110:服务器基于新创建的消息群组次序分配相应的群组编号,记群组编号为gi,定义服务器存在多个群组消息的存储结构,依次为g1,g2……gn,定义每个群组内包含多条消息,记编号为gi的消息群组中存储结构中所存储的第j条信息为mij;

s120:服务器建立缓存窗口结构,消息mij在缓存窗口结构中占据一条数据记录槽。

通过采用上述技术方案,通过步骤s110的设置可以对消息群组按照次序进行相应群组编号,从而更好的区分不同消息群组,并且通过在步骤s110中对消息mij的定义,可以更好的区分不同消息群组中的消息,而步骤s120的设置可以实现缓存窗口结构的建立,并且公开了消息在缓存窗口结构的存放方式进行了公开,建立了缓存窗口结构和消息存放的联系。

本发明进一步设置为:s120中缓存窗口结构分为三个区域,分别为回收区、记录区、预分配区,其中,

回收区:用于存放已经不在缓存窗口记录区的消息;

记录区:记录区用于存放需要返回给用户消息群的历史记录列表;

预分配区:当新的消息到来时,从预分配区获取空位存放消息。

通过采用上述技术方案,将s120中缓存窗口结构区分为三个区域,可以更好的实现不同区域工作的分配与协助,通过预分配区可以即时显示新消息,而记录区可以显示历史记录消息,方便了用户查看当前信息和历史消息,而回收区的设置可以及时进行不需要缓存的消息的存放,通过以上不同区域的协助,有利于用户更为便捷的获取所需信息。

本发明进一步设置为:s200包括:

s210:服务器将接收到的新消息存储入数据库;

s220:服务器将存储入数据库中的新消息同步到对应群组gi的缓存窗口中。

通过采用上述技术方案,通过步骤s210的设置可以将新消息存储入数据库,对新消息进行相应的备份,而步骤s220的设置可以将存储入数据库中的新消息即时同步到缓存到对应群组的缓存窗口,实现不同用户之间即时的通信交流。

本发明进一步设置为:步骤s220包括:

s221:从缓存窗口的预分配区先获取一条空闲的记录槽,然后把消息mij放入该记录槽中;

s222:把缓存窗口的记录指针都加1,定义起始指针记为p1,终止指针记为p2,即p1’=p1+1,p2’=p2+1,p1’,p2’为调整后的指针位置;

s223:预分配区当前记录槽的剩余量减少1,记当前预分配区记录槽的剩余量为v。

通过采用上述技术方案,通过步骤s221、s222的设置有效公布了缓存结构的动态调整过程,在保证即时显示缓存结构消息的同时,还能通过记录指针p1以及记录指针p2的调整,进行实时的内存释放,避免缓存结构受消息积累过多而出现预调整区记录槽占有量过多影响缓存结构工作效率的情况发生。

本发明进一步设置为:步骤s300包括:

s310:服务器实时比较预分配区记录槽的剩余量v和预设的预分配区的下限值;

s320:在预分配区记录槽的剩余量v小于预设的预分配区的下限值时,即v<smin时,服务器将存放于记录区记录槽的消息由下至上逐一释放至回收区直至v=smax,记预分配区记录槽的区间范围记为[smin,smax]。

通过采用上述技术方案,通过步骤s310的设置可以有效判别预分配区记录槽的剩余量v是否低于预设的下限值,而步骤s320的设置可以在预分配区记录槽的剩余量v低于预设的下限值时及时使预分配区的剩余量达到最大,在保证缓存结构正常工作的同时,间接减少缓存结构内存的调整次数,从而更好的提高缓存结构的工作效率。

本发明进一步设置为:步骤s320中回收区的记录内存定时释放。

通过采用上述技术方案,由于回收区的记录内存定时释放,可以有效避免在需要将记录区的消息存储至回收区时,出现回收区存在部分消息内存,降低记录区消息回返至回收区的效率。

本发明进一步设置为:步骤s320中预分配区记录槽的剩余量v在系统初始时,默认设置为中位数即v=(smin+smax)/2。

通过采用上述技术方案,此处将预分配区记录槽的剩余量v默认为(smin+smax)/2,可以在初始消息累计到一定量的时候,进行即时的内存释放。

本发明进一步设置为:s400包括:

s410:服务器获取用户所进入消息群组的群组编号;

s420:服务器基于群组编号直接从缓存结构中获取指针(p1,p2)之间的消息并即时显示在终端设备的显示界面。

通过采用上述技术方案,通过步骤s410的设置可以有效分析出用户所进入的消息群组的群组编号,而步骤s420的设置可以基于用户所进入的群组编号的消息群组,将对应的消息群组中的缓存结构中的消息内容进行实时的现实,从而实现不同用户之间更好的沟通与交流。

本发明进一步设置为:s420所提到的终端设备为手机或电脑。

通过采用上述技术方案,此处将s420所提到的终端设备设定为手机或电脑,可以有效限定为目前使用最为广泛的终端设备,更好体现出本系统所针对的对象为两个应用最为广泛的终端设备。

综上所述,本发明的有益技术效果为:

1.通过服务器、数据库以及缓存结构的设置可以在保证消息实时记录存储的同时,即时于显示界面显示,提高不同用户在消息群组的沟通效率;

2.通过缓存机构的调整机制以及服务器的设置有效保证了缓存机构在工作的时候保持实时高效,从而进一步保证了不同用户在消息群组中的沟通效率。

附图说明

图1是本发明群组消息服务端存储方法的步骤示意图。

图2是图1中步骤s100的具体步骤示意图。

图3是图1中步骤s200的具体步骤示意图。

图4是图3中步骤s220的具体步骤示意图。

图5是图1中步骤s300的具体步骤示意图。

图6是本发明群组消息服务端存储方法中缓存窗口结构的示意图。

图7是图1中步骤s400的具体步骤示意图。

图8是背景技术中两种传统存储方式的示意图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

参照图1,为本发明公开的一种群组消息服务端存储方法,包括:s100:服务器于消息群组创建时,同时创建对应消息群组内消息的缓存结构;s200:服务器将接收到的新消息同步到缓存结构中;s300:服务器基于目前同步至缓存结构中的消息总条数调节缓存结构;s400:服务器实时查询缓存结构中的消息,并于终端设备的显示界面即时显示缓存结构中的消息。

参照图2,其中,步骤s100包括:

s110:服务器基于新创建的消息群组次序分配相应的群组编号,记群组编号为gi,定义服务器存在多个群组消息的存储结构,依次为(g1,g2……gn),定义每个群组内包含多条消息,记编号为gi的消息群组中存储结构中所存储的第j条信息为mij,举例来说,第一个群组内的消息记为(m11,m12……m1n)。

s120:服务器建立缓存窗口结构,消息mij在缓存窗口结构中占据一条数据记录槽。

参照图6,s120中缓存窗口结构分为三个区域,分别为回收区、记录区、预分配区,其中,回收区:用于存放已经不在缓存窗口记录区的消息;记录区:记录区用于存放需要返回给用户消息群的历史记录列表,此处记录区的数量优选为100,即表示每个消息群组保存有100条历史消息记录;预分配区:当新的消息到来时,从预分配区获取空位存放消息,用于改善整个系统的性能。

参照图3以及图6,其中s200包括:s210:服务器将接收到的新消息存储入数据库,数据库简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作,所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合;s220:服务器将存储入数据库中的新消息同步到对应群组gi的缓存窗口中。

参照图4以及图6,其中步骤s220包括:

s221:从缓存窗口的预分配区先获取一条空闲的记录槽,然后把消息mij放入该记录槽中。

s222:把缓存窗口的记录指针都加1,定义起始指针记为p1,终止指针记为p2,即p1’=p1+1,p2’=p2+1,p1’,p2’为调整后的指针位置,在计算机科学中,指针(pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值,由上述可以确定记录指针都加1,即表示指针p1以及指针p2均指向内存地址的下一个内存地址,本实施例中指针移动方向如图6所示,随着新消息逐条进入到缓存窗口预分配区的记录槽,起始指针p1以及终止指针p2跟随新消息进入条数向调向下移动。

s223:预分配区当前记录槽的剩余量减少1,记当前预分配区记录槽的剩余量为v。

参照图5以及图6,其中步骤s300包括:

s310:服务器实时比较预分配区记录槽的剩余量v和预设的预分配区的下限值。

s320:在预分配区记录槽的剩余量v小于预设的预分配区的下限值时,即v<smin时,服务器将存放于记录区记录槽的消息由下至上逐一释放至回收区直至v=smax,记预分配区记录槽的区间范围记为[smin,smax]。

进一步考虑到记录区中记录槽在释放内存的时候,回收区能够及时进行回收,步骤s320中的回收区设定为其记录内存定时释放,此处优选设置为每隔1分钟释放回收区的记录内存,但不局限于1分钟,根据用户实际需求可进行相应调整,另外步骤s320中预分配区记录槽的剩余量v在系统初始时,默认设置为中位数即v=(smin+smax)/2。

参照图6以及图7,s400包括:s410:服务器获取用户所进入消息群组的群组编号;s420:服务器基于群组编号直接从缓存结构中获取指针(p1,p2)之间的消息并即时显示在终端设备的显示界面,其中s420所提到的终端设备优选为手机或电脑,但不局限于手机或电脑,可以是经由通信设施向计算机输入程序和数据或接收计算机输出处理结果的任意设备。

本实施例的实施原理为:在服务器接收到新消息后,先存储入数据库中,然后将存储入数据库中的新消息同步到缓存窗口结构中,在缓存窗口结构中通过起始指针和终止指针的同步下移,以实现新消息的存储,并且在同时进入过多新消息以至于出现预分配区的记录槽的数量低于smin时,有效释放记录区中的记录槽使内存释放至回收区直至记录槽的数量达到smax,通过上述方式循环进行新消息的传递,有效提高了不同用户在消息群组上的沟通交流。

本具体实施方式的实施例均为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1