一种基于缓存的数据存储与查询方法、装置、设备及介质制造方法及图纸

技术编号:28046109 阅读:22 留言:0更新日期:2021-04-09 23:31
本发明专利技术公开了一种基于缓存的数据存储与查询方法、装置、存储介质及计算机设备,当接收业务系统的推送消息后,重新组装消息并将组装后的消息依据用户维度不同分别存储至后台数据库;当前端触发查询时,依据不同用户维度的查询类别,进行所述推送消息的二级存储,并根据二级存储内容的返回查询结果,其基于Redis ZSET数据结构的缓存,利用ZSET提供的基于时间排序的站内信列表,避免了数据库层面的大量并发查询和排序操作,提升了系统的性能。

【技术实现步骤摘要】
一种基于缓存的数据存储与查询方法、装置、设备及介质
本专利技术属于互联网
,尤其涉及一种基于Redis缓存机制的数据存储与查询方法、装置、计算机设备及存储介质。
技术介绍
CF-OPR系统背负所有消金业务系统的消息(站内信、短信)存储和推送,其中站内信又分为单用户站内信(即单用户消息)和组推/群推站内信(即群组消息),组推/群推站内信需要支持不同维度的推送目标,包括按组推送、按标签推送等;CF-OPR同时需要提供消息查询接口供前端系统实时查询,查询接口也需要有较高的并发和性能支持。由于CF-OPR的消息体量巨大,每天都会有数十万甚至百万条的新增消息,随着系统中用户量和业务量的不断壮大,业务不断累积的同时数据量也不断壮大,此时服务器响应越来越慢,系统的吞吐量遭遇瓶颈。因此如何合理设计消息的存储、归档及查询接口方案,在保证接口性能和并发要求的情况下同时降低系统成本是急需解决的问题。
技术实现思路
本专利技术的目的是提供一种基于缓存的数据存储与查询方法,以解决现有技术存在的问题。为实现上述目的,本专利技术提供本文档来自技高网...

【技术保护点】
1.一种基于缓存的数据存储与查询方法,其特征在于:包括如下步骤:/nS1接收业务系统的推送消息;/nS2解析、验证所述推送消息的格式后,按照预设消息体格式重新组装消息;/nS3将组装后的消息依据用户维度不同分别存储至后台数据库;/nS4当前端触发查询时,依据不同用户维度的查询类别,进行所述推送消息的二级存储,并返回查询结果;/nS41若判断所述查询类别为分页查询时,查询Redis缓存并将所述Redis缓存中已缓存的消息作为查询结果返回;/nS42若判断所述查询类别为强制拉取最新消息时,则根据所述用户维度进行消息查询与所述推送消息的二级存储,并反馈查询结果,所述用户维度包括单用户消息与群组推送消...

【技术特征摘要】
1.一种基于缓存的数据存储与查询方法,其特征在于:包括如下步骤:
S1接收业务系统的推送消息;
S2解析、验证所述推送消息的格式后,按照预设消息体格式重新组装消息;
S3将组装后的消息依据用户维度不同分别存储至后台数据库;
S4当前端触发查询时,依据不同用户维度的查询类别,进行所述推送消息的二级存储,并返回查询结果;
S41若判断所述查询类别为分页查询时,查询Redis缓存并将所述Redis缓存中已缓存的消息作为查询结果返回;
S42若判断所述查询类别为强制拉取最新消息时,则根据所述用户维度进行消息查询与所述推送消息的二级存储,并反馈查询结果,所述用户维度包括单用户消息与群组推送消息。


2.根据权利要求1所述的一种基于缓存的数据存储与查询方法,其特征在于:若所述用户维度为单用户消息查询时,检查所述Redis缓存中指定用户的指定消息类型的zset是否存在;
若不存在,查询数据库中符合指定查询条件的所有未过期消息并填入Redis缓存,将更新后的Redis缓存消息作为查询结果返回;
若存在,比对数据库中最新的消息日期T1和Redis已缓存消息的最大日期T2,若T1>T2,则从数据库中查询消息日期大于T2的消息记录并添加至Redis缓存,将更新后的Redis缓存消息作为查询结果返回;若T1<T2,则将Redis已缓存的消息作为查询结果返回。


3.根据权利要求2所述的一种基于缓存的数据存储与查询方法,其特征在于:所述数据库中最新的消息日期T1为单用户基本信息表中bornTime,所述Redis已缓存消息的最大日期T2为单用户信息表中该用户对应的version值VA,从数据库中查询消息日期大于T2的消息记录并添加至Redis缓存,将更新后的Redis缓存消息作为查询结果返回包括:
A.联合查询单用户基本信息表中bornTime>VA的所有消息,并记录下此次查询时间T;
B.将所述步骤(A)中获取的消息写入Redis缓存;
C.更新单用户信息表中当前用户的version值为T;
D.根据传入的count值从缓存中取出最新的count条记录,反序列化后组装返回结果,其中count为每次查询的记录数值。


4.根据权利要求1所述的一种基于缓存的数据存储与查询方法,其特征在于:若所述用户维度为群组推送消息查询时,检查所述Redis缓存中指定用户的指定消息类型的zset是否存在:
若不存在,查询数据库中符合指定查询条件的所有未过期消息并填入Redis缓存,将更新后的Redis缓存消息作为查询结果返回;
若存在,则从所述查询请求中获得并保存当前用户和查询条件中指明的群组信息的映射关系,依据所述群组信息的映射关系从所述数据库查询出对应的消息后填入Redis缓存,并将更新Redis缓存消息作为查询结果返回。


5.根据权利要求4所述的一种基于缓存的数据存储与查询方法,其特征在于:从所述查询请求中获得并保存当前用户和查询条件中指明的群...

【专利技术属性】
技术研发人员:谈叶勇
申请(专利权)人:平安消费金融有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1