CN104601720A - 一种缓存访问控制方法及装置 - Google Patents

一种缓存访问控制方法及装置 Download PDF

Info

Publication number
CN104601720A
CN104601720A CN201510051900.3A CN201510051900A CN104601720A CN 104601720 A CN104601720 A CN 104601720A CN 201510051900 A CN201510051900 A CN 201510051900A CN 104601720 A CN104601720 A CN 104601720A
Authority
CN
China
Prior art keywords
data operation
operation request
request
agent layer
cache node
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.)
Pending
Application number
CN201510051900.3A
Other languages
English (en)
Inventor
孙文扬
薛伟
胡二彪
李向
迈乐
张清柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LeTV Information Technology Beijing Co Ltd
Original Assignee
LeTV Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by LeTV Information Technology Beijing Co Ltd filed Critical LeTV Information Technology Beijing Co Ltd
Priority to CN201510051900.3A priority Critical patent/CN104601720A/zh
Publication of CN104601720A publication Critical patent/CN104601720A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种缓存访问控制方法、装置及***,该方法应用于具有代理层和多个缓存节点的缓存***,包括:代理层接收客户端发送的数据操作请求;并将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。根据本申请的技术方案,在客户端与多个缓存服务器节点之间引入代理层,通过多个代理服务器对来自客户端的数据操作请求进行转发,使缓存不受单机内存大小的限制,采用一主一从或一主多从的集群模式,保证了单个缓存节点的高可用性,不会因为单个主服务器宕机而导致数据丢失。

Description

一种缓存访问控制方法及装置
技术领域
本申请涉及缓存技术领域,尤其涉及一种缓存访问控制方法及装置。
背景技术
随着互联网技术的快速发展,网络接入速度不断提高,各种类型的应用层出不穷,网站内容越来越多、访问量越来越大,造成数据库负载过大、网站显示延迟等影响,而造成影响用户体验的主要瓶颈集中在数据库服务器承载能力方面。因此,需要让数据库服务器快速响应并能够承受越来越大的负载,缓存技术就是解决此问题的一种方案,通过缓存***对数据库中的数据进行缓存,能够有效地降低数据库负载。
开源数据库Redis是目前被广泛使用的一种缓存***,支持缓存数据的持久化,解决了断电后数据完全丢失的情况,由于Redis具有丰富的数据结构,除了字符串(String)结构,还支持链表(List)、集合(set)、哈希(Hash)等数据结构,使用起来比较灵活,对于实际项目中的使用有很大的帮助。然而,由于Redis缓存是单点式,单机内存有限,当数据内存占用比较大的时候,数据处理能力就会降低,导致数据缓存能力下降,且目前的Redis本身都不具备分布式集群特性,只支持主从集群方案,无法做到动态扩展,当有大量请求时,通常只能通过客户端的一些数据分配算法(例如一致性哈希算法)来实现集群存储,Redis主从劣势就会突显出来。
因此,针对现有技术中存在的上述技术问题,需要提出改进的缓存控制方案。
发明内容
本申请的主要目的在于提供一种缓存访问控制方法、装置及***,以解决现有技术存在的缓存***中单点式缓存服务器的单机内存有限以及不能动态扩展的问题。
为解决上述问题,本申请实施例提供一种缓存访问控制方法,应用于具有代理层和多个缓存节点的缓存***,该方法包括:代理层接收客户端发送的数据操作请求;并将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,所述多个缓存节点中每一个节点包括一个主服务器和至少一个从服务器。
其中,代理层接收客户端发送的数据操作请求,包括:代理层的多个代理服务器中的任意一个代理服务器接收客户端发送的数据操作请求;将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求,进一步包括:所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,代理层接收客户端发送的数据操作请求,包括:代理层的负载均衡服务器接收客户端发送的数据操作请求;所述代理层的负载均衡服务器确定所述代理层的多个代理服务器中对所述数据操作请求进行转发的代理服务器,并将所述数据操作请求分发到确定的代理服务器;所述确定的代理服务器接收所述负载均衡服务器分发的所述数据操作请求;将所述数据操作请求转发到对应的缓存节点,进一步包括:所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,所述代理层的负载均衡服务器确定所述代理层的多个代理服务器中对所述请求进行转发的代理服务器,进一步包括:所述负载均衡服务器根据预定的负载均衡算法,确定所述多个代理服务器中对所述请求进行转发的代理服务器。
其中,所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,进一步包括:所述代理服务器根据所述请求对应的键,确定所述请求对应的缓存节点,并将所述请求转发到所述对应的缓存节点。
本申请实施例还提供一种缓存***,包括:代理层和多个缓存节点,所述代理层,用于接收客户端发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点;所述多个缓存节点,用于接收所述代理层转发的数据操作请求,并响应所述数据操作请求。
其中,所述多个缓存节点中每一个节点包括一个主服务器和至少一个从服务器。
其中,所述代理层,包括多个代理服务器,所述多个代理服务器,用于接收客户端发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,所述代理层,包括至少一个负载均衡服务器和多个代理服务器,所述至少一个负载均衡服务器,用于接收客户端发送的数据操作请求,确定所述代理层的多个代理服务器中对所述请求进行转发的代理服务器,并将所述请求分发到确定的代理服务器;所述多个代理服务器,用于接收所述至少一个负载均衡服务器分发的数据操作请求,并将所述请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,所述至少一个负载均衡服务器,进一步用于:根据预定的负载均衡算法,确定所述多个代理服务器中对所述请求进行转发的代理服务器。
其中,所述多个代理服务器,进一步用于:根据接收到的数据操作请求对应的键,确定所述请求对应的缓存节点,并将所述请求转发到所述对应的缓存节点。
本申请实施例还提供一种缓存访问控制装置,包括:至少一个负载均衡模组和多个代理模组,所述至少一个负载均衡模组,用于接收客户端发送的数据操作请求,确定所述多个代理模组中对所述请求进行转发的代理模组,并将所述请求分发到确定的代理模组;所述多个代理模组,用于接收所述至少一个负载均衡模组分发的数据操作请求,并将所述请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,所述至少一个负载均衡模组,进一步用于:根据预定的负载均衡算法,确定所述多个代理模组中对所述请求进行转发的代理模组。
其中,所述多个代理模组,进一步用于:根据接收到的数据操作请求对应的键,确定所述请求对应的缓存节点,并将所述请求转发到所述对应的缓存节点。
根据本申请的技术方案,在客户端与缓存服务器之间引入代理层,从而对客户端的数据操作请求进行转发,克服了单点式缓存***中节点的单机内存有限以及不能动态扩展的问题,使缓存不在受限于单机内存的大小,缓存节点为一主一从的集群模式或一主多从的集群模式,从而保证了单个缓存节点的高可用性,不会因为单个主服务器(Master)宕机而导致数据丢失。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例一的缓存访问控制方法的流程图;
图2是根据本申请实施例二的缓存访问控制方法的流程图;
图3是根据本申请实施例三的缓存访问控制方法的流程图;
图4是根据本申请实施例四的缓存***的结构框图;
图5是根据本申请实施例五的缓存***的结构框图;
图6是根据本申请实施例六的缓存***的结构框图;以及
图7是根据本申请实施例七的缓存访问控制装置的结构框图。
具体实施方式
本申请的主要思想在于,在客户端与缓存服务器之间引入代理层,从而对客户端的数据操作请求进行转发,克服Redis缓存***中单机内存有限以及不能动态扩展的问题。
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者***中还存在另外的相同要素。
实施例一
图1是根据本申请实施例一的缓存访问控制方法的流程图,该方法可以应用于具有多个缓存节点的缓存***中。该缓存***例如可以为Redis缓存***。如图1所示,该方法至少可以包括:
步骤S101,代理层接收客户端发送数据操作请求。
所述数据操作请求例如可以包括数据写入、数据读取、数据查询等请求。所述代理层可以包括多个代理服务器,客户端可以向该代理层的任意一个代理服务器发送所述数据操作请求,由所述任意一个代理服务器接收所述客户端发送的数据操作请求。
步骤S102,将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
具体地,客户端向该代理层的任意一个代理服务器发送所述数据操作请求,该代理服务器接收到所述客户端发送的数据操作请求,将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
可选地,代理层还包括至少一个负载均衡服务器,由负载均衡服务器对该请求进行分发,即,分发到适当的代理服务器进行处理。也就是说,在步骤S101处,客户端可以将所述数据操作请求发送到所述代理层的负载均衡服务器,由所述负载均衡服务器接收所述数据操作请求,在步骤S102处,所述负载均衡服务器确定所述代理层的多个代理服务器的中对所述数据操作请求进行转发的代理服务器,并将所述请求分发到确定的代理服务器,所述确定的代理服务器将所述数据操作请求转发到对应缓存节点,以响应所述数据操作请求。
具体而言,所述负载均衡服务器可以根据所述多个代理服务器的状态信息,确定对所述请求进行处理的代理服务器,再将客户端发送的数据操作请求分发到确定的代理服务器。例如,负载均衡服务器可以根据代理层的多个个代理服务器的存活信息、当前的连接数等信息确定多个代理服务器中对该数据操作请求进行转发的代理服务器,再由该确定的代理服务器将该数据操作请求转发到对应的缓存节点,以响应该请求。该确定的代理服务器可以先确定所述请求对应的缓存节点,也就是说,确定所述数据操作请求所请求操作的数据对应的缓存节点,然后该代理服务器再将该请求向该对应的缓存节点转发。每个缓存节点可以包括一个主服务器和至少一个从服务器。每个缓存节点可以为一主一从的集群模式也可以为一主多从的集群模式,从而可以保证单个缓存节点的高可用性,不会因为单个主服务器(Master)宕机而导致数据丢失。因此,该确定的代理服务器可以向该请求对应的缓存节点中的主服务器转发所述数据操作请求,以便由所述主服务器响应所述数据操作请求。
实施例二
图2是根据本申请实施例二的缓存访问控制方法的流程图,该方法可以应用于具有多个缓存节点的缓存***中。该缓存***例如可以为Redis缓存***。如图2所示,该方法至少可以包括:
步骤S201,代理层的多个代理服务器中的任意一个代理服务器接收客户端发送的数据操作请求。
具体地,代理层可以包括多个代理服务器,客户端可以向代理层的任意一个代理服务器发送所述数据操作请求,所述任意一个代理服务器接收所述客户端发送的数据操作请求。其中,所述数据操作请求例如可以包括数据写入、数据读取、数据查询等请求。
步骤S202,所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
也就是说,代理层接收到客户端发送的数据操作请求的代理服务器将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。具体地,所述代理服务器可以根据所述请求对应的键,确定所述请求对应的缓存节点,并将所述请求转发到所述对应的缓存节点。
实施例三
图3是根据本申请实施例三的缓存访问控制方法的流程图,如图3所示,该方法至少可以包括:
步骤S301,代理层的负载均衡服务器接收客户端发送的数据操作请求。
其中,代理层可以包括多个代理服务器和至少一个负载均衡服务器,所述数据操作请求例如可以包括数据写入、数据读取、数据查询等请求。客户端可以向代理层的负载均衡服务器发送数据操作请求,由所述负载均衡服务器接收所述请求,并进行进一步处理。
步骤S302,所述代理层的负载均衡服务器确定所述代理层的多个代理服务器中对所述请求进行转发的代理服务器,并将所述请求分发到确定的代理服务器。
具体地,所述负载均衡服务器接收到该数据操作请求后,可以根据预定的负载均衡算法,确定所述多个代理服务器中对所述请求进行转发的代理服务器。
例如,负载均衡服务器可以根据多个代理服务器的权重和当前的连接数,通过权重最少连接数调度算法(Weighted Least Connection Scheduling)确定所述多个代理服务器中对所述请求进行转发的代理服务器,也就是说,将当前的请求分发给连接数最少的代理服务器,使均衡更加符合实际情况,负载更加均衡。
又例如,负载均衡服务器可以根据轮叫调度算法(Round-RobinScheduling)确定所述多个代理服务器中对所述请求进行转发的代理服务器。也就是说,将每一次的请求轮流分发给每台代理服务器。
步骤S303,所述确定的代理服务器接收所述负载均衡服务器分发的所述数据操作请求。
步骤S304,所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
具体而言,确定的对所述数据操作请求进行转发的代理服务器可以根据所述请求对应的键,确定所述请求对应的缓存节点。更具体而言,所述代理服务器可以根据预定哈希算法对所述请求对应的键进行计算,并根据计算结果确定所述请求对应的缓存节点。例如,所述代理服务器可以先根据预定哈希算法计算所述请求对应的键所属的哈希槽,再根据预先保存的数据路由表查询所述哈希槽所属的缓存节点,由此确定所述数据操作请求对应的缓存节点。其中,所述预定哈希算法可以为目前常用的哈希算法,例如可以为FNV(Fowler-Noll-Vo)哈希算法,FNV哈希算法是一种高离散性的哈希算法,能快速哈希大量数据并保持较小的冲突率,特别适用于哈希非常相似的字符串,例如:URL,IP,主机名,文件名等。
其中,每个缓存节点可以包括一个主服务器和至少一个从服务器,也即是说,每个缓存节点可以为一主一从的集群模式也可以为一主多从的集群模式,从而可以保证单个缓存节点的高可用性,不会因为单个主服务器(Master)宕机而导致数据丢失。因此,该确定的代理服务器可以向该请求对应的缓存节点中的主服务器转发所述数据操作请求,以便由所述主服务器响应所述数据操作请求。
需要说明的是,在实施例三中,客户端可以将数据操作请求直接发送到代理层的任意一个代理服务器,也就是说,不经过负载均衡服务器进行请求的分发,直接发送到代理层多个代理服务器中的任意一个,再由接收到该请求的代理服务器进行请求的转发。
根据本申请,所述多个缓存节点之间可以通过一致性哈希算法或哈希取余算法进行管理。
实施例四
图4是根据本申请实施例四的缓存***的结构框图(为方便说明,图4中示出了向该缓存***发送数据操作请求的客户端500),如图4所示,该缓存***包括:代理层410和多个缓存节点420-1、420-2、420-3、…、420-N。
客户端500向该缓存***发送数据操作请求。
所述代理层410,用于接收客户端500发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点420-i;
所述多个缓存节点420-1、420-2、420-3、…、420-N,用于接收所述代理层转发的数据操作请求,并响应所述数据操作请求。
其中,所述多个缓存节点420-1、420-2、420-3、…、420-N中每一个节点420-i包括一个主服务器和至少一个从服务器。
也就是说,每个缓存节点为一主一从或一主多从的集群模式,从而可以保证单个缓存节点的高可用性,不会因为单个主服务器(Master)宕机而导致数据丢失。
实施例五
图5是根据本申请实施例五的缓存***的结构框图(为方便说明,图5中示出了向该缓存***发送数据操作请求的客户端500),如图5所示,本申请的缓存***中,包括代理层410和多个缓存节点420-1、420-2、420-3、…、420-N。
客户端500向该缓存***发送数据操作请求。
其中,所述代理层410,用于接收客户端500发送的数据操作请求,将所述数据操作请求转发到对应的缓存节点420-i;
所述多个缓存节点420,用于接收所述代理层转发的数据操作请求,并响应所述数据操作请求。
所述代理层410可以包括多个代理服务器412-1、412-2、412-3、…、412-M,用于接收客户端500发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
也就是说,客户端500可以向代理层410的多个代理服务器412-1、412-2、412-3、…、412-M中的任意一个代理服务器412-j发送数据操作请求,由该代理服务器接收所述客户端500发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点420-i,以响应所述数据操作请求。
实施例六
图6是根据本申请实施例六的缓存***的结构框图(为方便说明,图6中示出了向该缓存***发送数据操作请求的客户端500),如图6所示,在图5的基础上,缓存***中代理层410还包括至少一个负载均衡服务器411(图6中只示出一个负载均衡服务器)。
其中,所述至少一个负载均衡服务器411,用于接收客户端500发送的数据操作请求,确定所述代理层410的多个代理服务器412-1、412-2、412-3、…、412-M中对所述请求进行转发的代理服务器412-j,并将所述请求分发到确定的代理服务器412-j;
所述多个代理服务器412-1、412-2、412-3、…、412-M,用于接收所述至少一个负载均衡服务器411分发的数据操作请求,并将所述请求转发到对应的缓存节点420-i,以响应所述数据操作请求。
具体地,客户端500可以向代理层410的负载均衡服务器411发送数据操作请求,负载均衡服务器411确定所述代理层410的多个代理服务器412-1、412-2、412-3、…、412-M中对所述请求进行转发的代理服务器412-j,并将所述请求分发到确定的代理服务器412-j,该确定的代理服务器412-j接收到负载均衡服务器411分发的来自该客户端500的数据操作请求后,将所述数据操作请求转发到对应的缓存节点420-i,以响应所述数据操作请求。
其中,所述至少一个负载均衡服务器411进一步用于:根据预定的负载均衡算法,确定所述多个代理服务器412-1、412-2、412-3、…、412-M中对所述请求进行转发的代理服务器412-j。
所述多个代理服务器412-1、412-2、412-3、…、412-M进一步用于:根据接收到的数据操作请求对应的键,确定所述请求对应的缓存节点420-i,并将所述请求转发到所述对应的缓存节点420-i。
进一步地,所述多个代理服务器412-1、412-2、412-3、…、412-M,进一步用于:根据预定哈希算法计算所述请求对应的键所属的哈希槽;以及根据预先保存的数据路由表查询所述哈希槽所属的缓存节点。
需要说明的是,在本实施例六中,客户端500可以将数据操作请求直接发送到代理层的任意一个代理服务器412-j,也就是说,不经过负载均衡服务器411进行请求的分发,直接发送到代理层多个代理服务器412-1、412-2、412-3、…、412-M中的任意一个,再由接收到该请求的代理服务器412-j进行请求的转发。
实施例七
图7是根据本申请实施例七的缓存访问控制装置的结构框图,如图7所示,该缓存访问控制装置700包括:至少一个负载均衡模组710和多个代理模组720-1、720-2、720-3、…、720-N(图7中只示出一个负载均衡模组)。
所述负载均衡模组710,用于接收客户端发送的数据操作请求,确定所述多个代理模组720-1、720-2、720-3、…、720-N中对所述请求进行转发的代理模组720-i,并将所述请求分发到确定的代理模组720-i;
所述多个代理模组720-1、720-2、720-3、…、720-N,用于接收所述至少一个负载均衡模组710分发的数据操作请求,并将所述请求转发到对应的缓存节点,以响应所述数据操作请求。
其中,所述至少一个负载均衡模组710,进一步用于:根据预定的负载均衡算法,确定所述多个代理模组720-1、720-2、720-3、…、720-N中对所述请求进行转发的代理模组720-i。
所述多个代理模组720-1、720-2、720-3、…、720-N进一步用于:根据接收到的数据操作请求对应的键,确定所述请求对应的缓存节点,并将所述请求转发到所述对应的缓存节点。
所述多个代理模组720-1、720-2、720-3、…、720-N进一步用于:根据预定哈希算法计算所述请求对应的键所属的哈希槽;以及根据预先保存的数据路由表查询所述哈希槽所属的缓存节点。
本申请实施例四、五、六、七中所描述的***和装置的结构特征与前述方法的操作步骤对应,不足之处可以参考前述对方法流程的描述,不再一一赘述。
综上所述,根据本申请的技术方案,在客户端与缓存服务节点之间引入代理层,从而对客户端的数据操作请求进行转发,克服缓存***中单机内存有限以及不能动态扩展的问题,本申请可以应用于Redis缓存***中,应用程序只需要在代理层上进行操作,而不必关心具体有多少个真实的Redis存储,且后端的操作对于客户端来说是透明的,通过平行扩展Redis服务器来无限扩展缓存***,实现了Redis分布式缓存。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (10)

1.一种缓存访问控制方法,应用于具有代理层和多个缓存节点的缓存***,其特征在于,包括:
代理层接收客户端发送的数据操作请求;并
将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
2.根据权利要求1所述的方法,其特征在于,所述多个缓存节点中每一个节点包括一个主服务器和至少一个从服务器。
3.根据权利要求1所述的方法,其特征在于,代理层接收客户端发送的数据操作请求,包括:
代理层的多个代理服务器中的任意一个代理服务器接收客户端发送的数据操作请求;
将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求,进一步包括:
所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
4.根据权利要求1所述的方法,其特征在于,代理层接收客户端发送的数据操作请求,包括:
代理层的负载均衡服务器接收客户端发送的数据操作请求;
所述代理层的负载均衡服务器确定所述代理层的多个代理服务器中对所述数据操作请求进行转发的代理服务器,并将所述数据操作请求分发到确定的代理服务器;
所述确定的代理服务器接收所述负载均衡服务器分发的所述数据操作请求;
将所述数据操作请求转发到对应的缓存节点,进一步包括:
所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
5.根据权利要求4所述的方法,其特征在于,所述代理层的负载均衡服务器确定所述代理层的多个代理服务器中对所述请求进行转发的代理服务器,进一步包括:
所述负载均衡服务器根据预定的负载均衡算法,确定所述多个代理服务器中对所述请求进行转发的代理服务器。
6.根据权利要求3或4所述的方法,其特征在于,所述代理服务器将接收到的所述数据操作请求转发到对应的缓存节点,进一步包括:
所述代理服务器根据所述请求对应的键,确定所述请求对应的缓存节点,并将所述请求转发到所述对应的缓存节点。
7.一种缓存***,其特征在于,包括:代理层和多个缓存节点,
所述代理层,用于接收客户端发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点;
所述多个缓存节点,用于接收所述代理层转发的数据操作请求,并响应所述数据操作请求。
8.根据权利要求7所述的***,其特征在于,所述多个缓存节点中每一个节点包括一个主服务器和至少一个从服务器。
9.根据权利要求7所述的***,其特征在于,所述代理层,包括多个代理服务器,
所述多个代理服务器,用于接收客户端发送的数据操作请求,并将所述数据操作请求转发到对应的缓存节点,以响应所述数据操作请求。
10.一种缓存访问控制装置,其特征在于,包括:至少一个负载均衡模组和多个代理模组,
所述至少一个负载均衡模组,用于接收客户端发送的数据操作请求,确定所述多个代理模组中对所述请求进行转发的代理模组,并将所述请求分发到确定的代理模组;
所述多个代理模组,用于接收所述至少一个负载均衡模组分发的数据操作请求,并将所述请求转发到对应的缓存节点,以响应所述数据操作请求。
CN201510051900.3A 2015-01-30 2015-01-30 一种缓存访问控制方法及装置 Pending CN104601720A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510051900.3A CN104601720A (zh) 2015-01-30 2015-01-30 一种缓存访问控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510051900.3A CN104601720A (zh) 2015-01-30 2015-01-30 一种缓存访问控制方法及装置

Publications (1)

Publication Number Publication Date
CN104601720A true CN104601720A (zh) 2015-05-06

Family

ID=53127213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510051900.3A Pending CN104601720A (zh) 2015-01-30 2015-01-30 一种缓存访问控制方法及装置

Country Status (1)

Country Link
CN (1) CN104601720A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105141693A (zh) * 2015-09-10 2015-12-09 上海斐讯数据通信技术有限公司 一种分布式服务器架构及其操作方法
CN105915584A (zh) * 2016-03-31 2016-08-31 乐视控股(北京)有限公司 基于代理服务器的业务请求方法和***
CN106899588A (zh) * 2017-02-22 2017-06-27 郑州云海信息技术有限公司 一种应用于多端共存的程序自适应环境搭建***
CN106936896A (zh) * 2017-02-20 2017-07-07 北京数字联盟网络科技有限公司 Kafka集群的数据传送方法和装置
CN107181643A (zh) * 2017-06-08 2017-09-19 北京数盾信息科技有限公司 一种代理服务器监控管理方法及***
CN108183961A (zh) * 2018-01-04 2018-06-19 中电福富信息科技有限公司 一种基于Redis的分布式缓存方法
CN108462731A (zh) * 2017-02-20 2018-08-28 阿里巴巴集团控股有限公司 数据代理方法、装置以及电子设备
CN109347936A (zh) * 2018-09-30 2019-02-15 江苏满运软件科技有限公司 Redis代理客户端的实现方法、***、存储介质及电子设备
CN109407980A (zh) * 2018-09-29 2019-03-01 武汉极意网络科技有限公司 基于Redis集群的数据存储***
CN109491929A (zh) * 2018-11-15 2019-03-19 广东小天才科技有限公司 一种缓存数据读写方法及***
CN109510864A (zh) * 2018-09-29 2019-03-22 网宿科技股份有限公司 一种缓存请求的转发方法、传输方法及相关装置
CN110769020A (zh) * 2018-07-28 2020-02-07 阿里巴巴集团控股有限公司 一种资源请求处理方法、装置、设备及***
CN111405039A (zh) * 2020-03-16 2020-07-10 深圳市网心科技有限公司 一种数据透传方法、装置、***和客户端及服务器
CN112073274A (zh) * 2020-09-08 2020-12-11 张立旭 一种动态选择反向代理服务器的远程访问方法及***
CN113010549A (zh) * 2021-01-29 2021-06-22 腾讯科技(深圳)有限公司 基于异地多活***的数据处理方法、相关设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026560A1 (en) * 1998-10-09 2002-02-28 Kevin Michael Jordan Load balancing cooperating cache servers by shifting forwarded request
CN101764824A (zh) * 2010-01-28 2010-06-30 深圳市同洲电子股份有限公司 一种分布式缓存控制方法、装置及***
CN102006330A (zh) * 2010-12-01 2011-04-06 北京瑞信在线***技术有限公司 分布式缓存***、数据的缓存方法及缓存数据的查询方法
CN102118433A (zh) * 2010-12-27 2011-07-06 网宿科技股份有限公司 多层次的分布式集群***
CN102523234A (zh) * 2011-12-29 2012-06-27 山东中创软件工程股份有限公司 一种应用服务器集群实现方法及***
CN104050250A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026560A1 (en) * 1998-10-09 2002-02-28 Kevin Michael Jordan Load balancing cooperating cache servers by shifting forwarded request
CN101764824A (zh) * 2010-01-28 2010-06-30 深圳市同洲电子股份有限公司 一种分布式缓存控制方法、装置及***
CN102006330A (zh) * 2010-12-01 2011-04-06 北京瑞信在线***技术有限公司 分布式缓存***、数据的缓存方法及缓存数据的查询方法
CN102118433A (zh) * 2010-12-27 2011-07-06 网宿科技股份有限公司 多层次的分布式集群***
CN102523234A (zh) * 2011-12-29 2012-06-27 山东中创软件工程股份有限公司 一种应用服务器集群实现方法及***
CN104050250A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎***

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105141693A (zh) * 2015-09-10 2015-12-09 上海斐讯数据通信技术有限公司 一种分布式服务器架构及其操作方法
CN105915584A (zh) * 2016-03-31 2016-08-31 乐视控股(北京)有限公司 基于代理服务器的业务请求方法和***
CN106936896A (zh) * 2017-02-20 2017-07-07 北京数字联盟网络科技有限公司 Kafka集群的数据传送方法和装置
CN108462731A (zh) * 2017-02-20 2018-08-28 阿里巴巴集团控股有限公司 数据代理方法、装置以及电子设备
CN108462731B (zh) * 2017-02-20 2021-04-09 阿里巴巴集团控股有限公司 数据代理方法、装置以及电子设备
CN106936896B (zh) * 2017-02-20 2019-06-25 北京数字联盟网络科技有限公司 Kafka集群的数据传送方法和装置
CN106899588A (zh) * 2017-02-22 2017-06-27 郑州云海信息技术有限公司 一种应用于多端共存的程序自适应环境搭建***
CN107181643A (zh) * 2017-06-08 2017-09-19 北京数盾信息科技有限公司 一种代理服务器监控管理方法及***
CN107181643B (zh) * 2017-06-08 2020-03-17 北京数盾信息科技有限公司 一种代理服务器监控管理方法及***
CN108183961A (zh) * 2018-01-04 2018-06-19 中电福富信息科技有限公司 一种基于Redis的分布式缓存方法
CN110769020A (zh) * 2018-07-28 2020-02-07 阿里巴巴集团控股有限公司 一种资源请求处理方法、装置、设备及***
CN110769020B (zh) * 2018-07-28 2022-04-08 阿里巴巴集团控股有限公司 一种资源请求处理方法、装置、设备及***
CN109510864A (zh) * 2018-09-29 2019-03-22 网宿科技股份有限公司 一种缓存请求的转发方法、传输方法及相关装置
CN109407980A (zh) * 2018-09-29 2019-03-01 武汉极意网络科技有限公司 基于Redis集群的数据存储***
CN109510864B (zh) * 2018-09-29 2022-07-19 网宿科技股份有限公司 一种缓存请求的转发方法、传输方法及相关装置
CN109347936A (zh) * 2018-09-30 2019-02-15 江苏满运软件科技有限公司 Redis代理客户端的实现方法、***、存储介质及电子设备
CN109491929A (zh) * 2018-11-15 2019-03-19 广东小天才科技有限公司 一种缓存数据读写方法及***
CN111405039A (zh) * 2020-03-16 2020-07-10 深圳市网心科技有限公司 一种数据透传方法、装置、***和客户端及服务器
CN112073274A (zh) * 2020-09-08 2020-12-11 张立旭 一种动态选择反向代理服务器的远程访问方法及***
CN113010549A (zh) * 2021-01-29 2021-06-22 腾讯科技(深圳)有限公司 基于异地多活***的数据处理方法、相关设备及存储介质

Similar Documents

Publication Publication Date Title
CN104601720A (zh) 一种缓存访问控制方法及装置
CN102882939B (zh) 负载均衡方法、设备及泛域名加速访问***
CN108027805B (zh) 数据网络中的负载分发
CN102263828B (zh) 一种负载均衡分配方法及设备
WO2019206296A1 (zh) 用于网关服务器的故障处理方法和装置
CN101969468B (zh) 查询服务器集群***及查询方法
CN102523302B (zh) 虚拟机集群的负载均衡方法、服务器及***
US20120166394A1 (en) Distributed storage system and method for storing objects based on locations
US20130339295A1 (en) Organizing Data in a Distributed Storage System
US10044799B2 (en) Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
CN102843426B (zh) 基于智能父节点的Web缓存资源共享***和方法
CN103209223A (zh) 分布式应用会话信息共享方法、***和应用服务器
CN102394929A (zh) 一种面向会话的云计算负载均衡***及其方法
US11922059B2 (en) Method and device for distributed data storage
CN105791381A (zh) 访问控制的方法及装置
CN102932472A (zh) 一种数据处理方法以及通信***
CN101640623A (zh) 在对等网络中搜索资源的方法和设备
CN115086330A (zh) 跨集群负载均衡***
CN105472291A (zh) 多处理器集群的数字硬盘录像机及其实现方法
CN110740155B (zh) 分布式***中的请求处理方法及装置
CN111339057A (zh) 减少回源请求的方法、装置及计算机可读存储介质
KR20130130295A (ko) 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
EP2946304B1 (en) Vertically-tiered client-server architecture
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
CN204316546U (zh) 一种中小型云存储数据同步***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150506