一种分布式缓存方法及装置制造方法及图纸

技术编号:12790692 阅读:64 留言:0更新日期:2016-01-28 20:54
本发明专利技术公开了一种分布式缓存方法及装置,所述方法先判断接收到的用户的访问请求是否满足预先设定的规则,如果满足,则进入下一步进行缓存处理,否则不进行缓存处理;随后根据用户请求生成缓存主键,根据缓存主键计算缓存随机数,根据计算得到的缓存随机数将收集的对应于用户请求的响应数据分配到不同的缓存服务器进行分布式缓存。本发明专利技术的装置包括用户请求筛选模块和缓存服务器分配模块。本发明专利技术的方法及装置,将用户请求对应的响应数据缓存在不同缓存服务器中,提高了缓存的利用率,并提高了缓存的访问速度。

【技术实现步骤摘要】

本专利技术数属于数据缓存
,尤其涉及一种分布式缓存方法及装置
技术介绍
当传统数据库面临大规模数据访问时,磁盘I/O往往成为性能瓶颈,从而导致 过高的响应延迟。分布式缓存将高速内存作为数据对象的存储介质,数据以键值对(key/ value)形式存储,理想情况下可以获得DRAM级的读写性能。 然而随着所缓存的数据量的快速增长,在面对高并发访问要求的情况下,缓存响 应的速度仍然不够让人满意。在大量的缓存数据中根据key来查找value,当缓存中的key 有上亿或几十亿时,查找的速度并不理想。同时当value比较大,例如是图像数据时,更加 影响访问的速度。
技术实现思路
本专利技术的目的是提供一种分布式缓存方法及装置,能够在大数据量情况下依然提 供比较高的访问速度。 为了实现上述目的,本专利技术技术方案如下: -种分布式缓存方法,所述方法包括步骤: 判断接收到的用户的访问请求是否满足预先设定的规则,如果满足,则进入下一 步进行缓存处理,否则不进行缓存处理; 根据用户请求生成缓存主键,根据缓存主键计算缓存随机数,根据计算得到的缓 存随机数将收集的对应于用户请求的响应数据分配到不同的缓存服务器进行分布式缓存。 其中,所述预先设定的规则为建立分别保存了相应的用户请求关键值的黑白名 单,在收到用户请求后,提取用户请求中的关键值,先查看用户请求的关键值是否在白名单 中,再查看用户请求的关键值是否在黑名单中,当用户请求的关键值在白名单中并且不在 黑名单中时,判断为满足预先设定的规则。 本专利技术所述根据用户请求生成缓存主键,根据缓存主键计算缓存随机数,包括: 根据用户请求生成缓存主键A; 根据缓存主键按照预设的算法计算得到一个随机大数Μ; 对计算得到的随机大数用分布式缓存服务器的数量求模,得到缓存随机数k。 进一步地,所述预设的算法包括: 令C=A+B,其中B为{1,1,…,1},其中B的位数与A相同; 根据下式计算随机大数Μ: M=CCT〇 所述根据计算得到的缓存随机数将收集的对应于用户请求的响应数据分配到不 同的缓存服务器进行分布式缓存,包括: 根据计算得到的缓存随机数,将对应于用户请求的响应数据缓存到第k台缓存服 务器。 本专利技术还提出了一种分布式缓存装置,所述装置包括: 用户请求筛选模块,用于判断接收到的用户的访问请求是否满足预先设定的规 贝1J,如果满足,则进入缓存服务器分配模块进行缓存处理,否则不进行缓存处理; 缓存服务器分配模块,用于根据用户请求生成缓存主键,根据缓存主键计算缓存 随机数,根据计算得到的缓存随机数将收集的对应于用户请求的响应数据分配到不同的缓 存服务器进行分布式缓存。 本专利技术所述用户请求筛选模块内设置了预先设定的规则,建立分别保存了相应的 用户请求关键值的黑白名单,在收到用户请求后,提取用户请求中的关键值,先查看用户请 求的关键值是否在白名单中,再查看用户请求的关键值是否在黑名单中,当用户请求的关 键值在白名单中并且不在黑名单中时,判断为满足预先设定的规则。 进一步地,所述缓存服务器分配模块在根据用户请求生成缓存主键,根据缓存主 键计算缓存随机数时,执行如下操作: 根据用户请求生成缓存主键A; 根据缓存主键按照预设的算法计算得到一个随机大数Μ; 对计算得到的随机大数用分布式缓存服务器的数量求模,得到缓存随机数k。 进一步地,所述缓存服务器分配模块根据缓存主键按照预设的算法计算得到一个 随机大数M,执行如下操作: 令C=A+B,其中B为{1,1,…,1},其中B的位数与A相同; 根据下式计算随机大数Μ: M=CCT〇 进一步地,所述缓存服务器分配模块根据计算得到的缓存随机数将收集的对应于 用户请求的响应数据分配到不同的缓存服务器进行分布式缓存时,执行如下操作: 根据计算得到的缓存随机数,将对应于用户请求的响应数据缓存到第k台缓存服 务器。 本专利技术提出的一种分布式缓存方法及装置,通过根据用户请求计算缓存随机数, 将用户请求对应的响应数据缓存在不同缓存服务器中,提高了缓存的利用率,并提高了缓 存的访问速度。【附图说明】 图1为本专利技术一种分布式缓存方法的流程图。【具体实施方式】 下面结合附图和实施例对本专利技术技术方案做进一步详细说明,以下实施例不构成 对本专利技术的限定。 如图1所示,本实施例一种分布式缓存方法,包括: S1、判断接收到的用户的访问请求是否满足预先设定的规则,如果满足,则进入下 一步进行缓存处理,否则不进行缓存处理。 用户对网页进行操作,点击网页上的区域产生用户请求,用户请求被发送到网页 对应的后台服务器。为了提高缓存的效率,并避免缓存冲突,本实施例还实行黑白名单机 制,对用户请求进行分类,排除一些不允许缓存的用户请求。 具体地,用户请求request-般包括请求体和关键值,例如一个验证身份的用户 请求会包括用户ID和用户身份信息,其中用户ID为关键值,而用户身份信息为请求体。 系统中会预先设置有黑名单和白名单,黑白名单中各自保存了相应的用户请求的 关键值,本实施例通过黑白名单两层判断来为用户请求分类。在收到用户请求后,能够提取 用户请求中的关键值,先查看用户请求的关键值是否在白名单中,再查看用户请求的关键 值是否在黑名单中,当用户请求关键值在白名单中并且不在黑名单中时,判断为满足预先 设定的规则,才进入下面的缓存步骤。 从而根据用户请求的关键值对用户请求进行分类,排除不允许进行缓存的用户请 求,降低缓存的负担。 例如在网上商城后台服务应用中,对用户反复访问,却不会频繁变动数据结果的 接口用户请求允许缓存,对可能影响用户看到最新结果的数据的接口用户请求不允许缓 存,从而保证让用户最快访问到,诸如主页,某商品明细,某一组关键词搜索等的结果。具体 黑白名单的分类与具体业务实现相关,这里不再赘述。 S2、根据用户请求生成缓存主键,根据缓存主键计算缓存随机数,根据计算得到的 缓存随机数将收集的对应于用户请求的响应数据分配到不同的缓存服务器进行分布式缓 存。 对于满足黑白名单规则的用户请求,应用后台服务器会收集对应的响应数据,在 缓存中通过以键值对方式保存,键值对包括缓存主键(主键key)和对应的响应数据(值 value)〇 本实施例通过分布式缓存来缓存数据。在现有技术中,分布式缓存服务器每台缓 存服务器都保存同样的数据,以便于无论从哪一台缓存服务器都能够取到对应的响应数 据,而且无论哪一台缓存服务器故障,也能够从其他缓存服务器中得到响应数据。但是这种 方式对于缓存系统来说,一台缓存服务器存储的数据有限,每次查询缓存时都需要检索所 有的缓存数据,查询的时间比较长,当缓存的数据很大时,时间上的延迟带来不良的用户体 验。并且现有技术这样做的好处是通过分布式缓存服务器保障了缓存数据的相互备份,但 是对于缓存系统来说,缓存的数据并不是特别需要备份,完全可以通过重建来重新生成缓 存数据。 本实施例打破常规的做法,采用分布式缓存服务器来缓存,并且每台缓存服务器 保存不同的数据。由于缓存是用来保存暂时的数据,即使缓存服务器故障,也能通过重新缓 存来满足使用需求,因此本专利技术从提高缓存的访问速度和保证缓存不会溢出的角度来提高 缓存实用效率。 例如,假设计算机每秒计算100次,内存只能存储800个本文档来自技高网...
一种分布式缓存方法及装置

【技术保护点】
一种分布式缓存方法,其特征在于,所述方法包括步骤:判断接收到的用户的访问请求是否满足预先设定的规则,如果满足,则进入下一步进行缓存处理,否则不进行缓存处理;根据用户请求生成缓存主键,根据缓存主键计算缓存随机数,根据计算得到的缓存随机数将收集的对应于用户请求的响应数据分配到不同的缓存服务器进行分布式缓存。

【技术特征摘要】

【专利技术属性】
技术研发人员:李洋
申请(专利权)人:上海亿保健康管理有限公司
类型:发明
国别省市:上海;31

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

1