CN104601720A - 一种缓存访问控制方法及装置 - Google Patents
一种缓存访问控制方法及装置 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data 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.一种缓存访问控制装置,其特征在于,包括:至少一个负载均衡模组和多个代理模组,
所述至少一个负载均衡模组,用于接收客户端发送的数据操作请求,确定所述多个代理模组中对所述请求进行转发的代理模组,并将所述请求分发到确定的代理模组;
所述多个代理模组,用于接收所述至少一个负载均衡模组分发的数据操作请求,并将所述请求转发到对应的缓存节点,以响应所述数据操作请求。
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 (16)
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 | 腾讯科技(深圳)有限公司 | 基于异地多活系统的数据处理方法、相关设备及存储介质 |
CN113760901A (zh) * | 2021-02-19 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (6)
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 | 北京奇虎科技有限公司 | 一种分布式键-值查询方法和查询引擎系统 |
-
2015
- 2015-01-30 CN CN201510051900.3A patent/CN104601720A/zh active Pending
Patent Citations (6)
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 (22)
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 | 腾讯科技(深圳)有限公司 | 基于异地多活系统的数据处理方法、相关设备及存储介质 |
CN113010549B (zh) * | 2021-01-29 | 2024-07-23 | 腾讯云计算(北京)有限责任公司 | 基于异地多活系统的数据处理方法、相关设备及存储介质 |
CN113760901A (zh) * | 2021-02-19 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104601720A (zh) | 一种缓存访问控制方法及装置 | |
CN102882939B (zh) | 负载均衡方法、设备及泛域名加速访问系统 | |
US9705800B2 (en) | Load distribution in data networks | |
US8495013B2 (en) | Distributed storage system and method for storing objects based on locations | |
CN101969468B (zh) | 查询服务器集群系统及查询方法 | |
CN102523302B (zh) | 虚拟机集群的负载均衡方法、服务器及系统 | |
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) | 分布式应用会话信息共享方法、系统和应用服务器 | |
US11922059B2 (en) | Method and device for distributed data storage | |
CN102394929A (zh) | 一种面向会话的云计算负载均衡系统及其方法 | |
CN105791381A (zh) | 访问控制的方法及装置 | |
CN102932472A (zh) | 一种数据处理方法以及通信系统 | |
CN101640623A (zh) | 在对等网络中搜索资源的方法和设备 | |
CN105472291A (zh) | 多处理器集群的数字硬盘录像机及其实现方法 | |
CN110740155B (zh) | 分布式系统中的请求处理方法及装置 | |
CN115086330A (zh) | 跨集群负载均衡系统 | |
CN103107944A (zh) | 一种内容定位方法和路由设备 | |
KR20130130295A (ko) | 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 | |
EP2946304B1 (en) | Vertically-tiered client-server architecture | |
CN110798495B (zh) | 用于在集群架构模式下端到端的消息推送的方法和服务器 | |
CN204316546U (zh) | 一种中小型云存储数据同步系统 | |
CN105025042B (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
KR101696911B1 (ko) | 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법 |
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 |