CN104580432A - memcached系统及内存缓存数据提供、维护和集群维护方法及装置 - Google Patents
memcached系统及内存缓存数据提供、维护和集群维护方法及装置 Download PDFInfo
- Publication number
- CN104580432A CN104580432A CN201410836092.7A CN201410836092A CN104580432A CN 104580432 A CN104580432 A CN 104580432A CN 201410836092 A CN201410836092 A CN 201410836092A CN 104580432 A CN104580432 A CN 104580432A
- Authority
- CN
- China
- Prior art keywords
- memcached
- cache data
- cluster
- server
- access request
- 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
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
memcached系统及内存缓存数据提供、维护和集群维护方法及装置,所述内存缓存数据提供方法,包括:接收客户端的缓存数据访问请求;根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息;获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系;根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。上述的方案可以提高memcached系统的可靠性。
Description
技术领域
本发明涉及数据缓存技术领域,特别是涉及一种memcached系统及内存缓存数据提供、维护和集群维护方法及装置。
背景技术
Memcached是一种分布式内存对象缓存系统,用于动态网页(Web)应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站的访问速度。
现有技术中的Memcached系统,包括多个Memcached服务器。当接收到客户端发送的缓存数据访问请求时,通过相应的映射关系,便可以找到分布式内存对象缓存系统中相应的Memcached服务器,来响应客户端的缓存数据访问请求。但是,当相应节点的Memcached服务器宕机时,其中存储的缓存数据将会丢失。而数据缓存恢复时间较为漫长,对于一些页面浏览量较高的网站来说,一旦相应的Memcached服务器宕机,将会导致网站负载瞬间增加。因此,现有技术中的分布式内存对象缓存系统存在着可靠性差的问题。
发明内容
本发明实施例解决的问题是如何提高memcached系统的可靠性。
为解决上述问题,本发明实施例提供了一种内存缓存数据提供方法,所述方法包括:
接收客户端的缓存数据访问请求;
根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息;
获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系;
根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。
可选地,所述根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息,包括:
获取所述访问请求中所述缓存数据的URL;
计算得出所述URL的哈希值;
获取与所述哈希值相对应的memcached集群的信息。
可选地,所述根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,包括:采用分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,所述分片服务器中包括memcached集群与缓存数据之间的映射关系。
可选地,所述分片服务器包括主分片服务器和从分片服务器,主分片服务器和从分片服务器为主从复制关系。
可选地,所述采用分片服务器根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,包括:
可选地,当所述主分片服务器处于正常运行状态时,采用所述主分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群;
当所述主分片服务器处于故障状态时,采用所述从分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群。
可选地,所述根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器,包括:
当获取到所述主memcached服务器处于正常运行状态时,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器;
当获取到所述主memcached服务器处于故障状态时,将所接收的客户端的缓存数据访问请求发送至所述从memcached服务器。
本发明实施例还提供了一种memcached集群维护方法,所述方法包括:
采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息;
当确定主memcached服务器处于故障状态时,将所述主memcached服务器从所述memcached集群中删除,并在接收客户端的缓存数据访问请求时,采用从memcached服务器响应所述客户端的缓存数据访问请求。
可选地,所述方法还包括:
当检测到发生故障的主memcached服务器重新恢复至正常运行状态时,将所述主memcached服务器作为从memcached服务器,添加至所述memcached集群中。
本发明实施例还提供了一种内存缓存数据维护方法,所述方法包括:
判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化;
当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移。
可选地,所述当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移,包括:
获取映射关系变化之前memcached集群与缓存数据之间的映射关系,以及映射关系变化之后memcached集群与缓存数据之间的映射关系;
将映射关系变化之前各个memcached集群中存储的缓存数据迁移至映射关系变化之后对应的memcached集群中。
本发明实施例还提供了一种内存缓存数据提供装置,所述装置包括:
接收单元,适于接收客户端的缓存数据访问请求;
第一获取单元,适于根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息;
第二获取单元,适于获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系;
发送单元,适于根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。
可选地,所述第一获取单元适于获取所述访问请求中所述缓存数据的URL;计算得出所述URL的哈希值;获取与所述哈希值相对应的memcached集群的信息。
可选地,所述第一获取单元适于采用分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,所述分片服务器中包括memcached集群与缓存数据之间的映射关系。
可选地,所述分片服务器包括主分片服务器和从分片服务器,主分片服务器和从分片服务器为主从复制关系。
可选地,所述第一获取单元适于当所述主分片服务器处于正常运行状态时,采用所述主分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群;当所述主分片服务器处于故障状态时,采用所述从分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群。
可选地,所述发送单元适于当获取到所述主memcached服务器处于正常运行状态时,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器;当获取到所述主memcached服务器处于故障状态时,将所接收的客户端的缓存数据访问请求发送至所述从memcached服务器。
本发明实施例还提供了一种memcached集群维护装置,所述装置包括:
采集单元,适于采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息;
维护单元,适于当确定主memcached服务器处于故障状态时,将所述主memcached服务器从所述memcached集群中删除,并在接收客户端的缓存数据访问请求时,采用从memcached服务器响应所述客户端的缓存数据访问请求。
可选地,所述装置还包括:添加单元,适于当检测到发生故障的主memcached服务器重新恢复至正常运行状态时,将所述主memcached服务器作为从memcached服务器,添加至所述memcached集群中。
本发明实施例还提供了一种内存缓存数据维护装置,所述装置包括:
判断单元,适于判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化;
迁移单元,适于当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移。
可选地,所述迁移单元适于获取映射关系变化之前memcached集群与缓存数据之间的映射关系,以及映射关系变化之后memcached集群与缓存数据之间的映射关系;将映射关系变化之前各个memcached集群中存储的缓存数据迁移至映射关系变化之后对应的memcached集群中。
本发明实施例还提供了一种memcached系统,所述系统包括调度器,分片服务器以及N个memcached集群,所述调度器分别与所述分片服务器以及N个所述memcached集群连接,各个所述memcached集群分别包括主memcached服务器和一台以上的从memcached服务器。
可选地,所述分片服务器包括主分片服务器和从分片服务器,所述主分片服务器和从分片服务器之间为主从复制关系。
可选地,所述调度器包括上述的内存缓存数据提供装置。
可选地,所述系统还包括上述的memcached集群维护装置,所述memcached集群维护装置分别与所述分片服务器和各个所述memcached集群连接。
可选地,所述调度器还包括上述的内存缓存数据维护装置。
与现有技术相比,本发明的技术方案具有以下的优点:
由于在memacached集群中布置具有主从复制关系的主memacached服务器和从memacached服务器,当其中一台memacached服务器发生故障时,可以由其他的memacached服务器来响应客户端的缓存数据访问请求,因此,可以提高memcached系统的可靠性。
进一步地,由于采用具有主从复制关系的主分片服务器和从分片服务器来对各个memcached集群进行分片,当所述主分片服务器处于故障状态时,采用所述从分片服务器根据所接收的客户端的缓存数据访问请求,获取相应的memcached集群中主memcached服务器和从memcached服务器的状态信息,因此,可以进一步提高memcached系统的可靠性。
进一步地,当确定memcached系统中memacached与缓存数据之间的映射关系发生变化时,将映射关系变化之前存储在各个memacached集群中的缓存数据,迁移至映射关系变化之后对应的memacached集群中,可以避免缓存数据的丢失,因此,可以提高memcached系统的可靠性。
附图说明
图1是本发明实施例中的一种memcached系统的框架结构示意图;
图2是本发明实施例中的一种内存缓存数据提供方法的流程图;
图3是本发明实施例中的另一种内存缓存数据提供方法的流程图;
图4是本发明实施例中的一种memacached集群维护方法的流程图;
图5是本发明实施例中的另一种memacached集群维护方法的流程图;
图6是本发明实施例中的一种内存缓存数据维护方法的流程图;
图7是本发明实施例中的另一种内存缓存数据维护方法的流程图;
图8是本发明实施例中的内存缓存数据提供装置的结构示意图;
图9是本发明实施例中的memacached集群维护装置的结构示意图;
图10是本发明实施例中的内存缓存数据维护装置的结构示意图。
具体实施方式
为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过在memacached集群中布置具有主从复制关系的主memacached服务器和从memacached服务器,当其中一台memacached服务器发生故障时,可以由其他的memacached服务器来响应客户端的缓存数据访问请求,可以提高memcached系统的可靠性。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
为了对本发明实施例中的内存缓存数据提供方法及装置、memcached集群维护方法及装置,以及内存缓存数据维护方法及装置做详细的介绍,首先对发明实施例中的一种memcached集群系统的结构做详细的介绍。
请参见图1所示,本发明实施例中的一种memcached集群系统包括调度器101,分片服务器102以及N个memcached集群103,调度器101分别与分片服务器102以及N个memcached集群103连接,各个memcached集群103分别包括主memcached服务器1031和一台以上的从memcached服务器1032。其中:
主memcached服务器1031和从memcached服务器1032之间为主从复制关系,即在运行过程中,各个从memcached服务器1032与主memcached服务器1031中的数据保持同步。
在具体实施中,分片服务器102中存储有缓存数据和memcached集群之间映射关系。当调度器101接收到客户端104发送的数据访问请求时,调度器101通过访问分片服务器102,便可以获取对应的memcached集群的信息,并将所接收的客户端104的数据访问请求发送至对应的memcached集群103,由相应的memcached集群103响应客户端104的数据访问请求,将相应的缓存数据返回给客户端104。
图2示出了本发明实施例中的一种内存缓存数据提供方法的流程图。如图2所述的内存缓存数据提供方法,可以包括:
步骤S201:接收客户端的缓存数据访问请求。
步骤S202:根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息。
步骤S203:获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系。
在具体实施中,当接收到客户端104发送的缓存数据访问请求时,可以通过分片服务器102获取响应所述缓存数据访问请求的memcached集群103的信息,由于分片服务器102中存储有缓存数据与memcached集群103之间的映射关系,分片服务器102通过查询缓存数据与memcached集群103之间的映射关系,便可以获取响应所述缓存数据访问请求的memcached集群103的信息。具体地,可以首先获取所述访问请求中所述缓存数据的URL;计算得出所述URL的哈希值;最后,根据所计算得出的哈希值,通过查询缓存数据与memcached集群103之间的映射关系,便可以获取与所述哈希值相对应的memcached集群103的信息。
为了进一步提高本发明实施例中的memcached系统的可靠性,在本发明一实施例中,分片服务器102可以进一步包括主分片服务器1021和从分片服务器1022,且主分片服务器1021和从分片服务器1022为主从复制关系,即在运行过程中,从分片服务器1022与主分片服务器1021中的数据保持同步。
其中,当所述主分片服务器1021处于正常运行状态时,可以采用所述主分片服务器1021根据所接收客户端104的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群103;当所述主分片服务器1021处于故障状态时,采用所述从分片服务器1022根据所接收客户端104的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群103。
步骤S204:根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。
图3示出了本发明实施例中的一种内存缓存数据提供方法的流程图。如图3所述的内存缓存数据提供方法,可以包括:
步骤S301:接收客户端的缓存数据访问请求。
在具体实施中,由调度器101接收客户端104发送的缓存数据访问请求。
步骤S302:根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息。
在具体实施中,当调度器101接收到客户端104发送的缓存数据访问请求时,可以从客户端104发送的缓存数据访问请求中获取相应的缓存数据的统一资源定位符(Uniform Resoure Locator,URL)。
由于分片服务器102中存储有缓存数据和memcached集群103之间映射关系,调度器104通过分片服务器102,查询缓存数据和memcached集群103之间映射关系,便可以获取存储有对应的缓存数据的memcached集群103。
步骤S303:获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息。
在具体实施中,各个memcached集群103中包括一台主memcached服务器1031和至少一台从memcached服务器1032,且主memcached服务器1031和从memcached服务器1032之间为主从复制关系。
当接收到客户端104发送的缓存数据访问请求时,可以首先获取相应的memcached集群103中主memcached服务器1031和各个从memcached服务器1032的信息,以进一步确定由主memcached服务器1031还是从memcached服务器1032来相应客户端104的缓存数据访问请求。
步骤S304:判断主memcached服务器是否处于正常运行状态。
在具体实施中,当判断结果为是时,可以执行步骤S305,反之,则可以执行步骤S306。
步骤S305:将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器。
在具体实施中,当确定所述主memcached服务器1031处于正常运行状态时,可以将所接收的客户端104的缓存数据访问请求发送至所述主memcached服务器1031。
步骤S306:将所接收的客户端的缓存数据访问请求发送至memcached服务器。
在具体实施中,当获取的对应的memcached集群103中的主memcached服务器1031处于故障状态时,调度器101可以将所接收的客户端104的缓存数据访问请求发送至处于正常运行状态的一台从memcached服务器1032,由所述从memcached服务器1032来响应客户端104的缓存数据访问请求,向客户端104提供相应的缓存数据。
这里需要指出的是,由于memcached集群103中的主memcached服务器1031处于故障状态时,将会被从相应的memcached集群103中删除,那么,响应客户端104的缓存数据访问请求的从memcached服务器1032,实际上是在所述主memcached服务器1031发生故障时,从所述memcached集群103中的一台以上的从memcached服务器1032中选取的一台作为主memcached服务器1031,来响应客户端104的缓存数据访问请求的。
换句话说,在memcached集群103中用于响应客户端104的缓存数据访问请求的均为主memcached服务器1031,其他的memcached服务器将作为所述主memcached服务器1031的从memcached服务器1032,仅仅对所述主memcached服务器1031进行复制,并不响应客户端104的缓存数据访问请求。
由此可见,由于在各个memcached集群103中分别存在一台主memcached服务器1031和一台以上的memcached从服务器1032,当主memcached服务器1031处于正常运行状态时,由主memcached服务器1031来响应客户端104的缓存数据访问请求;当主memcached服务器1032处于故障状态时,则由从memcached服务器1032中选取一台作为主主memcached服务器1032来响应客户端104的缓存数据访问请求。因此,可以提高memcached系统的可靠性。
在具体实施中,为了进一步提高memcached系统运行的可靠性,可以对memcached系统中各个memcached集群103进行维护。请参见图4,具体而言,本发明实施例中的一种memcached集群维护方法,可以包括:
步骤S401:采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息。
步骤S402:判断所述主memcached服务器是否处于正常运行状态。
步骤S403:当确定主memcached服务器处于故障状态时,将所述主memcached服务器从所述memcached集群中删除。
步骤S404:从所述从memcached服务器中选取一台作为主memcached服务器。
本发明一实施例中,通过zookeeper(图中未示出)来对memcached集群103进行维护。请参见图5所示,本发明实施例中的一种memcached集群维护方法,可以包括:
步骤S501:采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息。
在具体实施中,各个memcached集群103中主memcached服务器1031和从memcached服务器1032所在的主机上都安装有对应的代理(agent)程序,它是zookeeper的客户端。各个所述agent程序负责监控各个述memcached集群103中主memcached服务器1031和从memcached服务器1032的状态。
在具体实施中,zookeeper管理memcached集群103的过程为:
首先启动好各个memcached集群103实例,每个memcached集群103实例有一个相应的agent程序负责监控,由agent监控memcached集群103实例的状态。
各个memcached集群103在zookeeeper上以分区节点1~分区节点n在zookeeper上创建完成后,各个memcached集群103中的主memcached服务器1031和从memcached服务器1032在启动过程中,各个对应的agent程序分别加入相应的各个memcached集群103在zookeeper上创建的分区节点1~分区节点n下,参与主memcached服务器1031的选举,监控其他的从memcached服务器1031,变化时更新主memcached服务器1031。
步骤S502:判断memcached集群中主memcached服务器是否处于正常运行状态。
在具体实施中,当判断结果为否时,可以执行步骤S503。
步骤S503:将所述主memcached服务器从所述memcached集群中删除,并在接收客户端的缓存数据访问请求时,采用从memcached服务器响应所述客户端的缓存数据访问请求。
在具体实施中,当memcached集群103中的主memcached服务器1031和从memcached服务器1032对应的agent程序与zookeeper建立连接的时间超过预设的时间阈值时,或者相应的agent程序通过检测发现相应的主memcached服务器1031出现故障时,zookeeper将删除相应的节点,以将发生故障的主memcached服务器1031从memcached集群103中删除。
步骤S504:从所述从memcached服务器中选取一台作为主memcached服务器。
由于各个memcached集群103中的主memcached服务器1031和从memcached服务器1032具有主从复制关系,一旦主memcached服务器1032出现故障,会从一台以上的从memcached服务器1032中选取一台作为主memcached服务器1031,以相应客户端104发送的缓存数据访问请求。
在具体实施中,当memcached集群103中的主memcached服务器1031和从memcached服务器1032中的故障节点满足预设的触发条件时,可以发布响应的故障告警信息,以便人工介入进行修复。其中,所述预设的触发条件可以根据实际的需要进行设置。
步骤S505:判断所述发生故障的主memcached服务器是否重新恢复至正常运行状态。
在具体实施中,当判断结果为是时,可以执行步骤S506。
步骤S506:将所述主memcached服务器作为从memcached服务器,添加至所述memcached集群中。
在具体实施中,当agent监控到发生故障的主memcached服务器1031重新恢复正常运行状态时,当确定zookeeper上相应的节点没有对应的memcached服务器时,则创建相应的节点,将发生故障的主memcached服务器1031重新添加至相应的memcached集群103中,并作为从memcached服务器1032使用。
在具体实施中,主memcached服务器1031是负责响应客户端104的缓存数据访问请求的memcached缓存节点,从memcached服务器1032则负责同步主memcached服务器1031的数据,当主memcached服务器1031宕机后,提升从memcached服务器1032为主memcached服务器1031。当监控到宕机的主memcached服务器1031重启后,将其作为从memcached服务器1032,添加至相应的memcached集群103中。
在具体实施中,本发明实施例中memcached集群103与缓存数据之间的映射关系由分片服务器102进行设置。其中,当所述memcached系统中的memcached集群103的数量增加或者减少时,memcached集群103中已经存储的缓存数据可以重新使用一致性哈希进行缓存节点位置的再分配,以避免数据的丢失,以进一步提高memcached系统运行的可靠性。请参见图6所示,具体而言,发明实施例中的一种内存缓存数据维护方法,可以包括:
步骤S601:判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化。
步骤S602:当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移。
图7示出了本发明实施例中的另一种内存缓存数据维护方法的流程图。如图7所示的内存缓存数据的方法,可以包括:
步骤S701:判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化。
在具体实施中,分片服务器102会定期访问zookeeper,以确定内存缓存系统中各个memcached集群103与缓存数据之间的映射关系是否发生变化,即memcached系统是否正处于调整状态中。
步骤S702:获取映射关系变化之前memcached集群与缓存数据之间的映射关系,以及映射关系变化之后memcached集群与缓存数据之间的映射关系。
在本发明一实施例中,当确定内存缓存系统中各个memcached集群103与缓存数据之间的映射关系发生变化时,调度器104任意使用两个哈希表(hashtable),所述两个哈希表中分别包括映射关系变化之前memcached集群103与缓存数据之间的映射关系,以及映射关系变化之后memcached集群103与缓存数据之间的映射关系,且所述的两个哈希表使用相同的一致性哈希算法。
步骤S703:将映射关系变化之前各个memcached集群中存储的缓存数据迁移至映射关系变化之后对应的memcached集群中。
在具体实施中,当确定memcached系统中各个memcached集群103与缓存数据之间的映射关系发生变化时,可以使用包括有使用映射关系变化之前各个memcached集群103与缓存数据的映射关系的哈希表,计算缓存数据在映射关系变化之前对应的memcached集群103的节点位置,再使用包括映射关系变化之后包括缓存数据与memcached集群103之间映射关系的哈希表,计算缓存数据对应的memcached集群103。
当通过所述的两个哈希表,得出了缓存数据在映射关系变化之前和之后分别对应的memcached集群103的信息之后,并可以将缓存数据从映射关系变化之前对应的memcached集群103迁移至映射的关系变化之前对应的memcached集群103上。因此,可以有效避免缓存数据的丢失,从而可以进一步提高memcached系统的可靠性,提升用户的使用体验。
图8示出了本发明实施例中的一种内存缓存数据提供装置的结构示意图。如图8所示的内存缓存数据提供装置800,可以包括接收单元801、第一获取单元802、第二获取单元803和发送单元804,其中:
接收单元801,适于接收客户端的缓存数据访问请求。
第一获取单元802,适于根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息。
在具体实施中,所述分片服务器包括主分片服务器和从分片服务器,主分片服务器和从分片服务器为主从复制关系。
在具体实施中,所述第一获取单元802适于当所述主分片服务器处于正常运行状态时,采用所述主分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群;当所述主分片服务器处于故障状态时,采用所述从分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群。
在具体实施中,所述第一获取单元802适于获取所述访问请求中所述缓存数据的URL;计算得出所述URL的哈希值;获取与所述哈希值相对应的memcached集群的信息。
在具体实施中,所述第一获取单元802适于采用分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,所述分片服务器中包括memcached集群与缓存数据之间的映射关系。
第二获取单元803,适于获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系。
发送单元804,适于根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。
在具体实施中,所述发送单元804适于当获取到所述主memcached服务器处于正常运行状态时,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器;当获取到所述主memcached服务器处于故障状态时,将所接收的客户端的缓存数据访问请求发送至所述从memcached服务器。
图9示出了本发明实施例中的一种memcached集群维护装置的结构示意图。如图9所示的memcached集群维护装置900,可以包括采集单元901和维护单元902,其中:
采集单元901,适于采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息。
维护单元902,适于当确定主memcached服务器处于故障状态时,将所述主memcached服务器从所述memcached集群中删除,并在接收客户端的缓存数据访问请求时,采用从memcached服务器响应所述客户端的缓存数据访问请求。
在具体实施中,如图9所示的memcached集群维护装置还可以包括添加单元903,其中:
添加单元903,适于当检测到发生故障的主memcached服务器重新恢复至正常运行状态时,将所述主memcached服务器作为从memcached服务器,添加至所述memcached集群中。
图10示出了本发明实施例中的一种内存缓存数据维护装置的结构示意图。如图10所示的内存缓存数据维护装置1000,可以包括判断单元1001和迁移单元1002,其中:
判断单元1001,适于判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化。
迁移单元1002,适于当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移。
在具体实施中,所述迁移单元1002适于获取映射关系变化之前memcached集群与缓存数据之间的映射关系,以及映射关系变化之后memcached集群与缓存数据之间的映射关系;将映射关系变化之前各个memcached集群中存储的缓存数据迁移至映射关系变化之后对应的memcached集群中。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (25)
1.一种内存缓存数据提供方法,其特征在于,包括:
接收客户端的缓存数据访问请求;
根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息;
获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系;
根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。
2.根据权利要求1所述的内存缓存数据提供方法,其特征在于,所述根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息,包括:
获取所述访问请求中所述缓存数据的URL;
计算得出所述URL的哈希值;
获取与所述哈希值相对应的memcached集群的信息。
3.根据权利要求2所述的内存缓存数据提供方法,其特征在于,所述根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,包括:采用分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,所述分片服务器中包括memcached集群与缓存数据之间的映射关系。
4.根据权利要求3所述的内存缓存数据提供方法,其特征在于,所述分片服务器包括主分片服务器和从分片服务器,主分片服务器和从分片服务器为主从复制关系。
5.根据权利要求4所述的内存缓存数据提供方法,其特征在于,所述采用分片服务器根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,包括:
当所述主分片服务器处于正常运行状态时,采用所述主分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群;
当所述主分片服务器处于故障状态时,采用所述从分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群。
6.根据权利要求1-5任一项所述的内存缓存数据提供方法,其特征在于,所述根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器,包括:
当获取到所述主memcached服务器处于正常运行状态时,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器;
当获取到所述主memcached服务器处于故障状态时,将所接收的客户端的缓存数据访问请求发送至所述从memcached服务器。
7.一种memcached集群维护方法,其特征在于,包括:
采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息;
当确定主memcached服务器处于故障状态时,将所述主memcached服务器从所述memcached集群中删除,并在接收客户端的缓存数据访问请求时,采用从memcached服务器响应所述客户端的缓存数据访问请求。
8.根据权利要求7所述的memcached集群维护方法,其特征在于,还包括:
当检测到发生故障的主memcached服务器重新恢复至正常运行状态时,将所述主memcached服务器作为从memcached服务器,添加至所述memcached集群中。
9.一种内存缓存数据维护方法,其特征在于,包括:
判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化;
当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移。
10.根据权利要求9所述的内存缓存数据维护方法,其特征在于,所述当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移,包括:
获取映射关系变化之前memcached集群与缓存数据之间的映射关系,以及映射关系变化之后memcached集群与缓存数据之间的映射关系;
将映射关系变化之前各个memcached集群中存储的缓存数据迁移至映射关系变化之后对应的memcached集群中。
11.一种内存缓存数据提供装置,其特征在于,包括:
接收单元,适于接收客户端的缓存数据访问请求;
第一获取单元,适于根据所接收的客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群的信息;
第二获取单元,适于获取所述memcached集群中主memcached服务器和从memcached服务器的状态信息,所述主memcached服务器和从memcached服务器为主从复制关系;
发送单元,适于根据所获取的主memcached服务器和从memcached服务器的状态信息,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器或者所述从memcached服务器。
12.根据权利要求11所述的内存缓存数据提供装置,其特征在于,所述第一获取单元适于获取所述访问请求中所述缓存数据的URL;计算得出所述URL的哈希值;获取与所述哈希值相对应的memcached集群的信息。
13.根据权利要求12所述的内存缓存数据提供装置,其特征在于,所述第一获取单元适于采用分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群,所述分片服务器中包括memcached集群与缓存数据之间的映射关系。
14.根据权利要求13所述的内存缓存数据提供装置,其特征在于,所述分片服务器包括主分片服务器和从分片服务器,主分片服务器和从分片服务器为主从复制关系。
15.根据权利要求14所述的内存缓存数据提供装置,其特征在于,所述第一获取单元适于当所述主分片服务器处于正常运行状态时,采用所述主分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群;当所述主分片服务器处于故障状态时,采用所述从分片服务器根据所接收客户端的缓存数据访问请求,获取响应所述缓存数据访问请求的memcached集群。
16.根据权利要求11-15任一项所述的内存缓存数据提供装置,其特征在于,所述发送单元适于当获取到所述主memcached服务器处于正常运行状态时,将所接收的客户端的缓存数据访问请求发送至所述主memcached服务器;当获取到所述主memcached服务器处于故障状态时,将所接收的客户端的缓存数据访问请求发送至所述从memcached服务器。
17.一种memcached集群维护装置,其特征在于,包括:
采集单元,适于采集所述memcached集群中主memcached服务器和从memcached服务器的状态信息;
维护单元,适于当确定主memcached服务器处于故障状态时,将所述主memcached服务器从所述memcached集群中删除,并在接收客户端的缓存数据访问请求时,采用从memcached服务器响应所述客户端的缓存数据访问请求。
18.根据权利要求17所述的memcached集群维护装置,其特征在于,还包括:
添加单元,适于当检测到发生故障的主memcached服务器重新恢复至正常运行状态时,将所述主memcached服务器作为从memcached服务器,添加至所述memcached集群中。
19.一种内存缓存数据维护装置,其特征在于,包括:
判断单元,适于判断memcached系统中各个memcached集群与缓存数据之间的映射关系是否发生变化;
迁移单元,适于当确定memcached集群与缓存数据之间的映射关系发生变化时,对映射关系变化之前各个memcached集群缓存数据进行迁移。
20.根据权利要求19所述的内存缓存数据维护装置,其特征在于,所述迁移单元适于获取映射关系变化之前memcached集群与缓存数据之间的映射关系,以及映射关系变化之后memcached集群与缓存数据之间的映射关系;
将映射关系变化之前各个memcached集群中存储的缓存数据迁移至映射关系变化之后对应的memcached集群中。
21.一种memcached系统,其特征在于,包括调度器,分片服务器以及N个memcached集群,所述调度器分别与所述分片服务器以及所述N个memcached集群连接,各个memcached集群分别包括主memcached服务器和一台以上的从memcached服务器。
22.根据权利要求21所述的memcached系统,其特征在于,所述分片服务器包括主分片服务器和从分片服务器,所述主分片服务器和从分片服务器之间为主从复制关系。
23.根据权利要求22所述的memcached系统,其特征在于,所述调度器包括权利要求11-16任一项所述的内存缓存数据提供装置。
24.根据权利要求23所述的memcached系统,其特征在于,包括权利要求17-18任一项所述的memcached集群维护装置,所述memcached集群维护装置分别与所述分片服务器和各个所述memcached集群连接。
25.根据权利要求24所述的memcached系统,其特征在于,所述调度器还包括权利要求19-20任一项所述内存缓存数据维护装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836092.7A CN104580432A (zh) | 2014-12-23 | 2014-12-23 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836092.7A CN104580432A (zh) | 2014-12-23 | 2014-12-23 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104580432A true CN104580432A (zh) | 2015-04-29 |
Family
ID=53095589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410836092.7A Pending CN104580432A (zh) | 2014-12-23 | 2014-12-23 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580432A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511805A (zh) * | 2015-11-26 | 2016-04-20 | 深圳市中博科创信息技术有限公司 | 集群文件系统的数据处理方法和装置 |
CN105554106A (zh) * | 2015-12-15 | 2016-05-04 | 上海仪电(集团)有限公司 | 一种memcache分布式缓存系统 |
CN106658042A (zh) * | 2016-12-28 | 2017-05-10 | 广州华多网络科技有限公司 | 一种数据推送方法及相关客户端、服务器 |
CN106790422A (zh) * | 2016-12-02 | 2017-05-31 | 北京锐安科技有限公司 | 一种用于web应用的数据缓存集群和数据检索方法 |
CN106936623A (zh) * | 2015-12-31 | 2017-07-07 | 五八同城信息技术有限公司 | 分布式缓存系统及缓存集群的管理方法 |
CN108011929A (zh) * | 2017-11-14 | 2018-05-08 | 平安科技(深圳)有限公司 | 数据请求处理方法、装置、计算机设备和存储介质 |
CN108228709A (zh) * | 2017-11-29 | 2018-06-29 | 北京市商汤科技开发有限公司 | 数据存储方法和系统、电子设备、程序和介质 |
CN108616581A (zh) * | 2018-04-11 | 2018-10-02 | 深圳纳实大数据技术有限公司 | 基于olap/oltp混合应用的数据存储系统及方法 |
CN110874288A (zh) * | 2018-09-04 | 2020-03-10 | 北京奇虎科技有限公司 | 一种Redis集群缓存数据的管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102316160A (zh) * | 2011-06-14 | 2012-01-11 | 贵阳朗玛信息技术股份有限公司 | 网站系统及其通信方法 |
CN103078927A (zh) * | 2012-12-28 | 2013-05-01 | 合一网络技术(北京)有限公司 | 一种key-value数据分布式缓存系统及其方法 |
WO2013117002A1 (zh) * | 2012-02-09 | 2013-08-15 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
-
2014
- 2014-12-23 CN CN201410836092.7A patent/CN104580432A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102316160A (zh) * | 2011-06-14 | 2012-01-11 | 贵阳朗玛信息技术股份有限公司 | 网站系统及其通信方法 |
WO2013117002A1 (zh) * | 2012-02-09 | 2013-08-15 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
CN103078927A (zh) * | 2012-12-28 | 2013-05-01 | 合一网络技术(北京)有限公司 | 一种key-value数据分布式缓存系统及其方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511805B (zh) * | 2015-11-26 | 2019-03-19 | 深圳市中博科创信息技术有限公司 | 集群文件系统的数据处理方法和装置 |
CN105511805A (zh) * | 2015-11-26 | 2016-04-20 | 深圳市中博科创信息技术有限公司 | 集群文件系统的数据处理方法和装置 |
CN105554106A (zh) * | 2015-12-15 | 2016-05-04 | 上海仪电(集团)有限公司 | 一种memcache分布式缓存系统 |
CN106936623A (zh) * | 2015-12-31 | 2017-07-07 | 五八同城信息技术有限公司 | 分布式缓存系统及缓存集群的管理方法 |
CN106790422A (zh) * | 2016-12-02 | 2017-05-31 | 北京锐安科技有限公司 | 一种用于web应用的数据缓存集群和数据检索方法 |
CN106658042B (zh) * | 2016-12-28 | 2019-07-02 | 广州华多网络科技有限公司 | 一种数据推送方法及相关客户端、服务器 |
CN106658042A (zh) * | 2016-12-28 | 2017-05-10 | 广州华多网络科技有限公司 | 一种数据推送方法及相关客户端、服务器 |
CN108011929A (zh) * | 2017-11-14 | 2018-05-08 | 平安科技(深圳)有限公司 | 数据请求处理方法、装置、计算机设备和存储介质 |
CN108011929B (zh) * | 2017-11-14 | 2020-08-25 | 平安科技(深圳)有限公司 | 数据请求处理方法、装置、计算机设备和存储介质 |
CN108228709A (zh) * | 2017-11-29 | 2018-06-29 | 北京市商汤科技开发有限公司 | 数据存储方法和系统、电子设备、程序和介质 |
CN108228709B (zh) * | 2017-11-29 | 2020-10-09 | 北京市商汤科技开发有限公司 | 数据存储方法和系统、电子设备、程序和介质 |
CN108616581A (zh) * | 2018-04-11 | 2018-10-02 | 深圳纳实大数据技术有限公司 | 基于olap/oltp混合应用的数据存储系统及方法 |
CN108616581B (zh) * | 2018-04-11 | 2021-07-16 | 深圳纳实大数据技术有限公司 | 基于olap/oltp混合应用的数据存储系统及方法 |
CN110874288A (zh) * | 2018-09-04 | 2020-03-10 | 北京奇虎科技有限公司 | 一种Redis集群缓存数据的管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104580432A (zh) | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 | |
CN102521038B (zh) | 基于分布式文件系统的虚拟机迁移方法和装置 | |
CN104320401A (zh) | 一种基于分布式文件系统的大数据存储访问系统及方法 | |
CN102411637B (zh) | 分布式文件系统的元数据管理方法 | |
CN106878376B (zh) | 一种配置管理方法与系统 | |
CN108011929A (zh) | 数据请求处理方法、装置、计算机设备和存储介质 | |
CN106789377B (zh) | 网元集群的服务参数更新方法 | |
CN104202375A (zh) | 同步数据的方法及系统 | |
CN105933391A (zh) | 一种节点扩容方法、装置及系统 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN105183839A (zh) | 一种基于Hadoop的小文件分级索引的存储优化方法 | |
CN101557427A (zh) | 提供分流信息、实现客户端分流的方法、系统及服务器 | |
CN103067525A (zh) | 一种基于特征码的云存储数据备份方法 | |
CN103207841A (zh) | 基于键值对缓存的数据读写方法及装置 | |
CN104735110A (zh) | 元数据管理方法和系统 | |
CN105208058A (zh) | 基于web会话共享的信息交互系统 | |
CN105262640A (zh) | 一种提升云平台服务器可靠性的系统、方法及其部署框架 | |
CN108304296A (zh) | 一种服务器监控方法、系统、设备及计算机可读存储介质 | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN109165112A (zh) | 一种元数据集群的故障恢复方法、系统及相关组件 | |
CN105635278A (zh) | 一种管理存储系统的元数据的方法以及元数据服务器 | |
CN109460345A (zh) | 实时数据的计算方法及系统 | |
CN103995901B (zh) | 一种确定数据节点失效的方法 | |
CN113703917B (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 |
Application publication date: 20150429 |
|
WD01 | Invention patent application deemed withdrawn after publication |