一种基于java平台的数据缓存方法

文档序号:9524140阅读:218来源:国知局
一种基于java平台的数据缓存方法
【技术领域】
[0001]本发明涉及电子商务中数据存储领域,尤其涉及一种基于java平台的数据缓存方法。
【背景技术】
[0002]近年来,随着电子商务的兴起,网购中的“购物车”已成为各大电商企业最为核心交易基础组件。购物车也是用户购物必经之路和枢纽,不容有任何闪失,数据访问量庞大,而且不定期量高峰,“购物车”稳定性也成为电子商务企业系统追求的主要目标之一。由于影响购物车稳定性因素特多,汇聚了基础服务和自身存储于一体,直接面向公网的购物枢纽。支持购物车的主要基础服务:商品、促销、用户和购物车自身存储,全部为动态实时调用服务,当时的工作重点是处理流量过大时会出现基础服务无法访问的问题。此问题真正的瓶颈在于基础服务:当大量用户抢购时,经常会出现对热销商品的服务,包括促销、价格、用户等,最后落点仅分摊到单个redis片上,导致整个交易集群连接数据过高,无法响应。为了解决此问题,向用户提供更好的购物体验,设计出了热数据缓存的方案。
[0003]现有技术中,如图1所示,通过利用应用服务器的富余资源,缓存最热的相关数据。缓存最热的数据时效很短,缓解基础服务的存储以及服务器的压力,而应用服务可水平扩充,达到频繁访问的效果,使得整体的速度更快,容量更大。然而,这种“用时间换取空间”的方式并不适用于电商中的某些具体应用场景,例如,“购物车”到结算页的数据都是实时数据,为了达到较好用户体验,其缓存时间要维持在毫秒级,显然现有技术的这种方式并不能满足需求;另外,在一些电商平台中,其平台架构是以java语言实现的,而Redis存储是在C语言开辟的内存中,跟java平台交互需要通过转换,这显然也延误了时间。

【发明内容】

[0004](一 )要解决的技术问题
[0005]本发明的目的在于,提供一种基于java平台的数据缓存方法及系统,在缓解因请求量巨大而对源站带来压力的情况下,解决现有技术方案中时效性差的问题,彻底满足了对商品价格展示的实时性的需求,并能根据流量增长的需求进行扩容。
[0006]( 二)技术方案
[0007]本发明提供一种基于java平台的数据缓存方法及系统,包括:
[0008]S1,在每次数据访问中,获取海量数据中每个数据被访问的频率;
[0009]S2,筛选出被访问频率最高的多个数据,并将这些数据缓存于java内存中。
[0010]本发明提供还一种基于java平台的数据缓存系统,包括:
[0011 ] 访问频率获取单元,用于在每次数据访问中,获取海量数据中每个数据被访问的频率;
[0012]数据筛选缓存单元,用于筛选出被访问频率最高的多个数据,并将多个数据缓存于java内存中。
[0013](三)有益效果
[0014]本发明提供的数据缓存方法及系统,通过将热数据直接缓存于java内存中,并通过queue序列按照先进先出的方式存放该热数据,缓解了访问压力同时,具有较好的时效性,提高了用户体验。
【附图说明】
[0015]图1是现有技术中利用应用服务器缓存最热数据的示意图。
[0016]图2是本发明实施例提供的电子商务中的数据缓存的示意图。
【具体实施方式】
[0017]本发明提供一种基于java平台的数据缓存方法及系统,将被访问频率最高的多个数据缓存于java内存,同时,通过queue序列按照先进先出的方式存放该热数据,缓解了访问压力同时,具有较好的时效性,提高了用户体验。
[0018]根据本发明的一种实施方式,基于java平台的数据缓存方法包括:
[0019]S1,在每次数据访问中,获取海量数据中每个数据被访问的频率;
[0020]S2,筛选出被访问频率最高的多个数据,并将这些数据缓存于java内存中。
[0021]根据本发明的一种实施方式,在步骤S2中,在java内存中创建一个queue序列,将被访问频率最高的前N个数据作为热数据,按照先入先出的顺序放入queue序列中,其中,N为所述queue序列的大小,N的取值可根据海量数据的大小而确定,例如,在海量数据的大小为1T时,N取1000。
[0022]根据本发明的一种实施方式,根据热数据在所述queue序列存在的时间,判断该热数据是否失效,若未失效,则将该热数据保留在所述queue序列中,否则将该热数据从所述queue序列中删除。
[0023]根据本发明的一种实施方式,在判断该热数据是否失效时,将该热数据存在于queue序列的时间与一阈值进行比较,若小于等于该阈值,则判定该热数据未失效,否则判定该热数据已失效。
[0024]根据本发明的一种实施方式,基于java平台的数据缓存系统包括:
[0025]访问频率获取单元,用于在每次数据访问中,获取海量数据中每个数据被访问的频率;
[0026]数据筛选缓存单元,用于筛选出被访问频率最高的多个数据,并将多个数据缓存于java内存中。
[0027]根据本发明的一种实施方式,数据筛选缓存单元在java内存中创建一个queue序列,将被访问频率最高的前N个数据作为热数据,按照先入先出的顺序放入queue序列中,其中,N为queue序列的大小。
[0028]根据本发明的一种实施方式,根据热数据在queue序列存在的时间,判断该热数据是否失效,若未失效,则将该热数据保留在queue序列中,否则将该热数据从queue序列中删除。
[0029]根据本发明的一种实施方式,在判断该热数据是否失效时,将该热数据存在于所述queue序列的时间与一阈值进行比较,若小于等于该阈值,则判定该热数据未失效,否则判定该热数据已失效。
[0030]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0031]本发明在电商领域应用广泛,这里提供本发明应用于网购中“购物车”的实施例。
[0032]如图2所示,“购物车”作为java网购平台的水平应用,并且分配有java内存,其中,在java内存中设有一 queue序列,该水平应用不断访问基础数据服务中的商品数据,并获取每个商品数据被访问的频率,在水平应用中,筛选出被访问频率最高的多个商品数据,并将这些商品数据缓存于queue序列中,其中queue序列的大小可由电子商务平台规模设定,电子商务平台规模越大,其可能存放在购物车中的商品也就越多,例如,平台允许用户在购物车中存放50个商品,即queue序列的大小为50。
[0033]随着网购的进行,系统会根据商品数据在queue序列存在的时间,判断该商品数据是否失效,若未失效,则将该数据保留在queue序列中,否则将该数据从所述queue序列中删除。具体地,系统将该商品数据存在于queue序列的时间与一阈值进行比较,若小于等于该阈值,则判定该热数据未失效,否则判定该热数据已失效,其中,该阈值可由系统进行设定,也可由用户自己设定,如商品在购物车中存在3个月以上时,可将该商品在购物车中删除。
[0034]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于java平台的数据缓存方法,其特征在于,包括: SI,在每次数据访问中,获取海量数据中每个数据被访问的频率; S2,筛选出被访问频率最高的多个数据,并将所述多个数据缓存于java内存中。2.根据权利要求1所述的数据缓存方法,其特征在于,在所述步骤S2中,在所述java内存中,创建一个queue序列,将被访问频率最高的前N个数据作为热数据,按照先入先出的顺序放入所述queue序列中,其中,N为所述queue序列的大小。3.根据权利要求2所述的数据缓存方法,其特征在于,根据所述热数据在所述queue序列存在的时间,判断该热数据是否失效,若未失效,则将该热数据保留在所述queue序列中,否则将该热数据从所述queue序列中删除。4.根据权利要求3所述的数据缓存方法,其特征在于,在判断该热数据是否失效时,将该热数据存在于所述queue序列的时间与一阈值进行比较,若小于等于该阈值,则判定该热数据未失效,否则判定该热数据已失效。5.一种基于java平台的数据缓存系统,其特征在于,包括: 访问频率获取单元,用于在每次数据访问中,获取海量数据中每个数据被访问的频率; 数据筛选缓存单元,用于筛选出被访问频率最高的多个数据,并将所述多个数据缓存于java内存中。6.根据权利要求5所述的数据缓存方法,其特征在于,数据筛选缓存单元在所述java内存中创建一个queue序列,将被访问频率最高的前N个数据作为热数据,按照先入先出的顺序放入所述queue序列中,其中,N为所述queue序列的大小。7.根据权利要求6所述的数据缓存方法,其特征在于,根据所述热数据在所述queue序列存在的时间,判断该热数据是否失效,若未失效,则将该热数据保留在所述queue序列中,否则将该热数据从所述queue序列中删除。8.根据权利要求7所述的数据缓存方法,其特征在于,在判断该热数据是否失效时,将该热数据存在于所述queue序列的时间与一阈值进行比较,若小于等于该阈值,则判定该热数据未失效,否则判定该热数据已失效。
【专利摘要】本发明公开了一种基于java平台的数据缓存方法及系统,将被访问频率最高的多个数据缓存于java内存,同时,通过queue序列按照先进先出的方式存放该热数据,缓解了访问压力同时,具有较好的时效性,提高了用户体验。
【IPC分类】G06F12/0802
【公开号】CN105279104
【申请号】CN201510830707
【发明人】杨超
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2016年1月27日
【申请日】2015年11月25日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1