CN110351313B - 数据缓存方法、装置、设备及存储介质 - Google Patents
数据缓存方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110351313B CN110351313B CN201810283885.9A CN201810283885A CN110351313B CN 110351313 B CN110351313 B CN 110351313B CN 201810283885 A CN201810283885 A CN 201810283885A CN 110351313 B CN110351313 B CN 110351313B
- Authority
- CN
- China
- Prior art keywords
- cache
- node
- data
- cache node
- hash
- 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.)
- Active
Links
Images
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了数据缓存方法、装置、设备及存储介质,其中,数据缓存方法包括:获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点。解决了现有技术中的数据缓存备份工作较为复杂的技术问题,降低了数据备份的复杂度,保证了存储于缓存节点的缓存数据的安全,同时不会大幅增加其他工作节点的缓存数据的存储量,有利于保证其他缓存节点始终处于良好的工作状态。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据缓存方法、装置、设备及存储介质。
背景技术
对于大多数缓存场景,只需要支持读多写多的键值存储即可。现有的主流服务器缓存方案包括主仆模式(Master-slave)和X-Cluster集群。Master-slave方案出现较早,适合读多写少的场景,不适合读多写多的场景。X-Cluster是官方推荐的集群方案,去中心化,性能随节点增加而线性扩展,虽然适合读多写多的场景,但是部署相对复杂。而且这两种数据缓存方案在数据备份方面的工作都比较复杂,使数据缓存的可靠性较低,服务器的运营和维护成本较高。
发明内容
本发明实施例提供一种数据缓存方法、装置、设备及存储介质,解决现有数据缓存的备份工作较为复杂的技术问题。
第一方面,本发明实施例提供了一种数据缓存方法,应用于客户端或代理端,包括:
获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;
获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;
将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点。
进一步,所述获取哈希槽位与缓存节点的对应关系,包括:
根据一致性哈希算法确定哈希槽位与缓存节点的对应关系。
进一步,所述将所述缓存数据存储于所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点之后,还包括:
获取所述缓存数据的读请求,并根据所述读请求确定所述缓存数据对应的哈希槽位;
从所述哈希槽位对应的缓存节点获取所述读请求对应的缓存数据。
进一步,还包括:
基于预设检测顺序检测每个缓存节点的工作状态;
当判定所述缓存节点处于非正常工作状态时,将所述缓存节点从哈希环中删除;
当判定所述缓存节点恢复正常工作状态时,将所述缓存节点加入哈希环。
进一步,所述基于预设检测顺序检测每个缓存节点的工作状态,包括:
基于预设检测顺序确定要检测的目标缓存节点;
连续采集所述目标缓存节点的多个自检信号;
根据所述多个自检信号中的非正常自检信号的数量确定所述目标缓存节点的工作状态。
进一步,所述当判定所述缓存节点恢复正常工作状态时,将所述缓存节点加入哈希环;
当连续检测到预设数量的正常自检信号时,将该缓存节点加入哈希环。
第二方面,本发明实施例还提供了一种数据缓存装置,设置于客户端或代理端,包括:
写请求获取模块,用于获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;
对应关系获取模块,用于获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;
发送模块,用于将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点。
第三方面,本发明实施例还提供了一种数据缓存方法,应用于服务器的节点端,包括:
接收客户端或代理端发送的缓存数据,其中,所述缓存数据对应的哈希槽位与缓存节点对应;
将所述缓存数据同步至与所述缓存节点对应的从节点。
进一步,还包括:
当当前缓存节点处于非正常工作状态,且自检到正常自检信号时,从对应的从节点加载历史缓存数据。
第四方面,本发明实施例还提供了一种数据缓存装置,设置于服务器的缓存节点端,包括:
缓存数据接收模块,用于接收客户端或代理端发送的缓存数据,其中,所述缓存数据对应的哈希槽位与缓存节点对应;
同步模块,用于将所述缓存数据同步至与所述缓存节点对应的从节点。
第五方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据缓存方法。
第六方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的数据缓存方法。
本实施例提供的数据缓存方法的技术方案,通过获取缓存数据的写请求,并根据写请求确定缓存数据对应的哈希槽位;获取哈希槽位与缓存节点的对应关系,根据对应关系确定与哈希槽位对应的缓存节点,其中,缓存节点设置有对应的从节点;将缓存数据发送至哈希槽位所对应的缓存节点,且缓存数据由缓存节点同步至与缓存节点对应的从节点。缓存数据通过缓存节点同步至从节点,实现了缓存数据的实时备份,当缓存节点出现故障时,不会丢失已存储的缓存数据,降低了数据备份的复杂度,提高了缓存节点保证缓存数据安全的能力,同时不会大幅增加其他工作节点的缓存数据的存储量,有利于保证其他缓存节点始终处于良好的工作状态。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据缓存方法的流程图;
图2是本发明实施例二提供的数据缓存方法的流程图;
图3是本发明实施例三提供的数据缓存装置的结构示意图;
图4是本发明实施例四提供的数据缓存方法的流程图;
图5是本发明实施例五提供的数据缓存装置的结构示意图;
图6为本发明实施例六提供的设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例基于一致性哈希算法进行数据缓存,为了便于下文各个实施例的具体展开,先介绍基于一致性哈希算法的数据缓存方法的原理。
确定缓存节点(服务器)的哈希值,并将其配置到预设圆上,比如0~N的圆上。然后根据缓存数据的大小确定一定数量的哈希槽位并配置在该圆上,然后根据哈希槽位与缓存节点的位置关系,确定哈希槽位与缓存节点的对应关系,比如,每个哈希槽位在顺时针方向上遇到的第一个缓存节点作为其对应的缓存节点。
若要将缓存数据缓存至目标缓存节点上,需要先确定缓存数据的key(键)与哈希槽位的对应关系,然后根据哈希槽位与缓存节点的对应关系确定目标缓存节点。示例性的,假设哈希槽位数为10,对缓存数据的key进行哈希运算得到哈希值为103,则哈希值与哈希槽位数的模为103/10=3,那么缓存数据的key对应标号为3的哈希槽位,然后将缓存数据存储在标号为3的哈希槽位对应的缓存节点上。
实施例一
图1是本发明实施例一提供的数据缓存方法的流程图。本实施例的技术方案适用于客户端或代理端向服务器发送缓存数据的情况。该方法可以由本发明实施例提供的数据缓存装置来执行,该装置可以采用软件和/或硬件的方式实现,并配置在客户端或代理端的处理器中应用。
该方法具体包括如下步骤:
S101、获取缓存数据的写请求,并根据写请求确定缓存数据对应的哈希槽位。
缓存数据的写请求可以是客户端接收的用户输入的缓存数据的写请求,也可以是客户端自动读取应用程序产生的缓存数据的写请求,或者代理端获取的客户端向其发送的缓存数据的写请求。
通常情况下,缓存数据的写请求会携带其对应的缓存数据的key(键),或是根据写请求可以确定该写请求对应的缓存数据的key。对缓存数据的key进行哈希运算得到其哈希值,然后根据该哈希值与总哈希槽位数的模确定缓存数据的key对应的哈希槽位。
S102、获取哈希槽位与缓存节点的对应关系,根据对应关系确定与哈希槽位对应的缓存节点,其中,缓存节点设置有对应的从节点。
当缓存数据的key对应的哈希槽位确定后,则获取哈希槽位与缓存节点的对应关系,根据二者的对应关系确定缓存数据的key对应的缓存节点。
为了提高数据缓存的可靠性,以及应对缓存节点故障的易操作性,本实施例中的每个缓存节点均设置有对应的从节点,用于备份其对应的缓存节点的缓存数据。
S103、将缓存数据发送至哈希槽位所对应的缓存节点,且缓存数据由缓存节点同步至与缓存节点对应的从节点。
将缓存数据发送至哈希槽位所对应的缓存节点,而且,缓存数据由缓存节点同步至与缓存节点对应的从节点。在实现缓存数据缓存的同时,实现缓存数据的实时备份。相对于现有技术在缓存节点出现故障后,将缓存数据加载到设定的另一缓存节点,会增加接收缓存数据的缓存节点的数据负荷以及数据吞吐量,导致哈希环倾斜,本实施例可以保证原有缓存节点的工作状态,同时保证故障缓存节点的缓存数据的安全,降低了缓存数据的管理难度。
本实施例中,当客户端或代理端需要读取缓存数据时,先获取缓存数据的读请求,并根据读请求确定缓存数据对应的哈希槽位。缓存数据的读请求可以是客户端接收的用户输入的缓存数据的读请求,也可以是客户端自动读取应用程序产生的缓存数据的读请求,或者代理端获取的客户端向其发送的缓存数据的读请求。通常情况下,缓存数据的读请求会携带其对应的缓存数据的key(键),或是根据读请求可以确定该读请求对应的缓存数据的key。对缓存数据的key进行哈希运算得到其哈希值,然后根据该哈希值与总哈希槽位数的模确定该读请求对应的key所对应的哈希槽位。读请求对应的哈希槽位确定后,从确定的哈希槽位对应的缓存节点获取读请求对应的缓存数据。
本实施例提供的数据缓存方法的技术方案,通过获取缓存数据的写请求,并根据写请求确定缓存数据对应的哈希槽位;获取哈希槽位与缓存节点的对应关系,根据对应关系确定与哈希槽位对应的缓存节点,其中,缓存节点设置有对应的从节点;将缓存数据发送至哈希槽位所对应的缓存节点,且缓存数据由缓存节点同步至与缓存节点对应的从节点。缓存数据通过缓存节点同步至从节点,实现了缓存数据的实时备份,当缓存节点出现故障时也不会丢失已存储的缓存数据,降低了数据备份的复杂度,提高了缓存节点保证缓存数据安全的能力,同时不会大幅增加其他工作节点的缓存数据的存储量,使其他缓存节点始终处于良好的工作状态。
实施例二
图2是本发明实施例二提供的数据缓存方法的流程图。本发明实施例在上述实施例的基础上,增加了检测缓存节点工作状态的方法的步骤。如图2所示,该方法包括:
S104、基于预设检测顺序检测每个缓存节点的工作状态。
为了保证数据缓存的有效性和实时性,通常需要使提供缓存服务的缓存节点(服务器)均处于正常工作状态,为此本实施例的客户端或代理端基于预设检测顺序检测每个缓存节点的工作状态。可以理解的是,客户端或代理端也可以实时检测每个缓存节点的工作状态,只要客户端或代理端的设备性能能够在保证数据缓存实时性的同时,也能实现对每个缓存节点的工作状态进行实时检测即可。
可选地,本实施例基于预设检测顺序确定要检测的目标缓存节点;然后连续采集目标缓存节点的多个自检信号;然后根据采集到的多个自检信号中的非正常自检信号的数量,确定目标缓存节点的工作状态。示例性地,对于每一个缓存节点,客户端或代理端在t时间内连续采集N次缓存节点的自检信号,当这N个自检信号中的非正常工作信号不低于预设故障次数时,则判定该目标缓存节点当前处于非正常工作状态,当这N个自检信号中的非正常工作信号低于预设故障次数时,则判断该目标缓存节点当前处于正常工作状态。
可以理解的是,客户端或代理端可以每次仅采集每个缓存节点的一个自检信号,待预设时间内,某个缓存节点的非正常自检信号的数量达到预设故障次数时,则判定该缓存节点处于非正常工作状态,否则,则处于正常工作状态。
S105、当判定缓存节点处于非正常工作状态时,将缓存节点从哈希环中删除。
当客户端或代理端根据检测结果确定某个缓存节点处于非正常工作状态时,即将该缓存节点从哈希环中删除,使该缓存节点不再提供缓存数据的读写服务。可选地,当客户端或代理端将处于非工作状态的缓存节点从哈希环中删除时,向缓存节点发送退出服务信号,缓存节点根据此退出服务信号同时发出故障信号,停止向子节点同步数据,等待维修。可以理解的是,当缓存节点出现重大故障直接停机时,自行停止向子节点同步缓存数据,同时启动应急报警信号,提示缓存节点出现故障,需要维修。
可以理解的是,当故障缓存节点被客户端或代理端从哈希环中删除后,与该故障缓存节点对应的哈希槽位将对应剩余缓存节点中的预设缓存节点,此时,当有缓存数据的key对应这些槽位时,根据更新后的哈希槽位与缓存节点的对应关系,该缓存数据将被存储在该预设缓存节点中。
S106、当判定缓存节点恢复正常工作状态时,将缓存节点加入哈希环。
当缓存节点出现故障后,通常会立即对其进行维修,待其恢复正常工作状态时,将缓存节点加入哈希环。
可选地,当客户端或代理端判断缓存节点处于非正常工作状态,并将其从哈希环中删除后,仍然采用原有缓存节点检测顺序对其进行检测,或者启动故障检测,对该删除的缓存节点进行实时检测,并在当连续检测到预设数量的正常自检信号时,将该缓存节点加入哈希环,使其恢复缓存数据的读写工作。
本发明实施例通过对缓存节点进行实时检测来实时获取缓存节点的工作状态,并在其出现故障时,及时将其从哈希环中删除,避免当前缓存数据无法缓存,虽然会影响存储在故障缓存节点中的缓存数据的暂时读取,但从节点的存在使故障缓存节点的缓存数据不会丢失,待故障缓存节点恢复正常工作后,即可恢复期缓存数据的读取,缓存数据的安全性较高,而且不会大幅增加其他缓存节点的数据存储量,进而可保证其他缓存节点的缓存数据的读写速度。
实施例三
图3是本发明实施例三提供的数据缓存装置的结构示意图。该装置用于执行上述任意实施例所提供的数据缓存方法,该控制装置可选为软件或硬件实现,并配置在客户端或代理端使用。如图3所示,该装置包括:
写请求获取模块11,用于获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;
对应关系获取模块12,用于获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;
发送模块13,用于将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点。
本实施例提供的数据缓存装置的技术方案,通过获取缓存数据的写请求,并根据写请求确定缓存数据对应的哈希槽位;获取哈希槽位与缓存节点的对应关系,根据对应关系确定与哈希槽位对应的缓存节点,其中,缓存节点设置有对应的从节点;将缓存数据发送至哈希槽位所对应的缓存节点,且缓存数据由缓存节点同步至与缓存节点对应的从节点。缓存数据通过缓存节点同步至从节点,实现了缓存数据的实时备份,当缓存节点出现故障时,不会丢失已有缓存数据,降低了数据备份的复杂度,提高了缓存节点保证缓存数据安全的能力,同时不会大幅增加其他工作节点的缓存数据的存储量,使其他缓存节点始终处于良好的工作状态。
本发明实施例所提供的数据缓存装置可执行本发明任意实施例所提供的数据缓存方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的数据缓存方法的流程图。本实施例的技术方案适用于服务器接收客户端或代理端发送的缓存数据的情况。该方法可以由本发明实施例提供的数据缓存装置来执行,该装置可以采用软件和/或硬件的方式实现,并配置在服务器的处理器中应用。如图4所示,该方法具体包括如下步骤:
S201、接收客户端或代理端发送的缓存数据,其中,缓存数据对应的哈希槽位与缓存节点对应。
当客户端或代理端向当前缓存节点发送缓存数据时,当前缓存节点接收该缓存数据。其中,客户端或代理端选择缓存节点作为当前缓存节点来接收缓存数据的方法包括:获取缓存数据的写请求,缓存数据的写请求可以是客户端接收的用户输入的缓存数据的写请求,也可以是客户端自动读取应用程序产生的缓存数据的写请求,或者代理端获取的客户端向其发送的缓存数据的写请求。
通常情况下,缓存数据的写请求会携带其对应的缓存数据的key(键),或是根据写请求可以确定该写请求对应的缓存数据的key。对缓存数据的key进行哈希运算得到其哈希值,然后根据该哈希值与总哈希槽位数的模确定缓存数据的key对应的哈希槽位。当缓存数据的key对应的哈希槽位确定后,则获取哈希槽位与缓存节点的对应关系,根据二者的对应关系确定缓存数据的key对应的缓存节点。
S202、将缓存数据同步至与缓存节点对应的从节点。
缓存节点接收到客户端或代理端发送的缓存数据后,将缓存数据同步至与其对应的从节点,实现缓存数据的实时备份,相对于现有技术在缓存节点出现故障后,将缓存数据加载到设定的另一缓存节点,会增加接收缓存数据的缓存节点的数据负荷以及数据吞吐量,导致哈希环倾斜,本实施例可以保证原有缓存节点的工作状态,同时保证故障缓存节点的缓存数据的安全。
其中,从节点可以与缓存节点一样设置于哈希环上,只是不接收客户端或代理端发送的缓存数据读写请求,也可以仅仅是与缓存节点存在通信关系的存储设备。
本实施例提供的数据缓存方法的技术方案,接收客户端或代理端发送的缓存数据,其中,缓存数据对应的哈希槽位与缓存节点对应,将缓存数据同步至与缓存节点对应的从节点。通过将缓存数据同步至与缓存节点对应的从节点,实现了缓存数据的实时备份,使缓存节点出现故障时也不会丢失已存储的缓存数据,降低了数据备份的复杂度,提高了缓存节点保证缓存数据安全的能力,同时不会大幅增加其他工作节点的缓存数据的存储量,使其他缓存节点始终处于良好的工作状态。
实施例五
图5是本发明实施例五提供的数据缓存装置的结构示意图。该装置用于执行上述任意实施例所提供的数据缓存方法,该控制装置可选为软件或硬件实现,并配置在服务器中使用。如图5所示,该装置包括:
缓存数据接收模块21,用于接收客户端或代理端发送的缓存数据,其中,所述缓存数据对应的哈希槽位与缓存节点对应;
同步模块22,用于将所述缓存数据同步至与所述缓存节点对应的从节点。
本实施例提供的数据缓存装置的技术方案,接收客户端或代理端发送的缓存数据,其中,缓存数据对应的哈希槽位与缓存节点对应,将缓存数据同步至与缓存节点对应的从节点。通过将缓存数据同步至与缓存节点对应的从节点,实现了缓存数据的实时备份,使缓存节点出现故障时也不会丢失已存储的缓存数据,降低了数据备份的复杂度,提高了缓存节点保证缓存数据安全的能力,同时不会大幅增加其他工作节点的缓存数据的存储量,使其他缓存节点始终处于良好的工作状态。
本发明实施例所提供的数据缓存装置可执行本发明任意实施例所提供的数据缓存方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的设备的结构示意图,如图6所示,该设备包括处理器101、存储器102、输入装置103以及输出装置104;设备中处理器101的数量可以是一个或多个,图6中以一个处理器101为例;设备中的处理器101、存储器102、输入装置103以及输出装置104可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器102作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据缓存方法对应的程序指令/模块(例如,写请求获取模块11、对应关系获取模块12以及发送模块13)。处理器101通过运行存储在存储器102中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据缓存方法。
存储器102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器102可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置103可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。
输出装置104可包括显示屏等显示设备,例如,用户终端的显示屏。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据缓存方法,该方法包括:
获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;
获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;
将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据缓存方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(RandomAccess Memory,简称RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的数据缓存方法。
值得注意的是,上述数据缓存装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.一种数据缓存方法,其特征在于,应用于客户端或代理端,包括:
获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;
获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;
将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点;
其中,所述从节点设置于哈希环上,所述从节点不接收客户端或代理端发送的缓存数据读写请求;
或,所述从节点是与所述缓存节点存在通信关系的存储设备。
2.根据权利要求1所述的方法,其特征在于,所述获取哈希槽位与缓存节点的对应关系,包括:
根据一致性哈希算法确定哈希槽位与缓存节点的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述将所述缓存数据存储于所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点之后,还包括:
获取所述缓存数据的读请求,并根据所述读请求确定所述缓存数据对应的哈希槽位;
从所述哈希槽位对应的缓存节点获取所述读请求对应的缓存数据。
4.根据权利要求3所述的方法,其特征在于,还包括:
基于预设检测顺序检测每个缓存节点的工作状态;
当判定所述缓存节点处于非正常工作状态时,将所述缓存节点从哈希环中删除;
当判定所述缓存节点恢复正常工作状态时,将所述缓存节点加入哈希环。
5.根据权利要求4所述的方法,其特征在于,所述基于预设检测顺序检测每个缓存节点的工作状态,包括:
基于预设检测顺序确定要检测的目标缓存节点;
连续采集所述目标缓存节点的多个自检信号;
根据所述多个自检信号中的非正常自检信号的数量确定所述目标缓存节点的工作状态。
6.根据权利要求5所述的方法,其特征在于,所述当判定所述缓存节点恢复正常工作状态时,将所述缓存节点加入哈希环;
当连续检测到预设数量的正常自检信号时,将该缓存节点加入哈希环。
7.一种数据缓存装置,其特征在于,设置于客户端或代理端,包括:
写请求获取模块,用于获取缓存数据的写请求,并根据所述写请求确定所述缓存数据对应的哈希槽位;
对应关系获取模块,用于获取哈希槽位与缓存节点的对应关系,根据所述对应关系确定与所述哈希槽位对应的缓存节点,其中,所述缓存节点设置有对应的从节点;
发送模块,用于将所述缓存数据发送至所述哈希槽位所对应的缓存节点,且所述缓存数据由所述缓存节点同步至与所述缓存节点对应的从节点。
8.一种数据缓存方法,其特征在于,应用于服务器的节点端,包括:
接收客户端或代理端发送的缓存数据,其中,所述缓存数据对应的哈希槽位与缓存节点对应;
将所述缓存数据同步至与所述缓存节点对应的从节点。
9.根据权利要求8所述的方法,其特征在于,还包括:
当当前缓存节点处于非正常工作状态,且自检到正常自检信号时,从对应的从节点加载历史缓存数据。
10.一种数据缓存装置,其特征在于,设置于服务器的缓存节点端,包括:
缓存数据接收模块,用于接收客户端或代理端发送的缓存数据,其中,所述缓存数据对应的哈希槽位与缓存节点对应;
同步模块,用于将所述缓存数据同步至与所述缓存节点对应的从节点;
其中,所述从节点设置于哈希环上,所述从节点不接收客户端或代理端发送的缓存数据读写请求;
或,所述从节点是与所述缓存节点存在通信关系的存储设备。
11.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据缓存方法。
12.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810283885.9A CN110351313B (zh) | 2018-04-02 | 2018-04-02 | 数据缓存方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810283885.9A CN110351313B (zh) | 2018-04-02 | 2018-04-02 | 数据缓存方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110351313A CN110351313A (zh) | 2019-10-18 |
CN110351313B true CN110351313B (zh) | 2022-02-22 |
Family
ID=68173668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810283885.9A Active CN110351313B (zh) | 2018-04-02 | 2018-04-02 | 数据缓存方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110351313B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114463162A (zh) * | 2020-10-21 | 2022-05-10 | 浙江宇视科技有限公司 | 图像缓存处理方法、装置、电子设备以及存储介质 |
CN112532525B (zh) * | 2020-11-25 | 2022-11-25 | 北京金山云网络技术有限公司 | 设备恢复服务的处理方法、装置和系统 |
CN114201117B (zh) * | 2021-12-22 | 2023-09-01 | 苏州浪潮智能科技有限公司 | 缓存数据的处理方法、装置、计算机设备及存储介质 |
CN115174527B (zh) * | 2022-07-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 序列号处理方法和装置、计算设备、存储介质 |
CN115484315A (zh) * | 2022-08-19 | 2022-12-16 | 中国科学院信息工程研究所 | 基于rdma的网络功能状态共享方法及系统 |
CN115665159B (zh) * | 2022-12-14 | 2023-04-28 | 中国华能集团清洁能源技术研究院有限公司 | 一种大数据环境下的元数据管理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013023090A2 (en) * | 2011-08-09 | 2013-02-14 | Fusion-Io, Inc. | Systems and methods for a file-level cache |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
CN105516367A (zh) * | 2016-02-02 | 2016-04-20 | 北京百度网讯科技有限公司 | 分布式数据存储系统、方法和装置 |
CN106250226A (zh) * | 2016-08-02 | 2016-12-21 | 福建华渔未来教育科技有限公司 | 基于一致性哈希算法的任务调度机制及系统 |
CN106357449A (zh) * | 2016-09-27 | 2017-01-25 | 深圳市彬讯科技有限公司 | 一种zedis分布式缓存方法 |
CN106572153A (zh) * | 2016-10-21 | 2017-04-19 | 乐视控股(北京)有限公司 | 集群的数据存储方法及装置 |
WO2017079313A1 (en) * | 2015-11-03 | 2017-05-11 | Nec Laboratories America, Inc. | Systems and methods for distributed assignment of the task identifiers |
-
2018
- 2018-04-02 CN CN201810283885.9A patent/CN110351313B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013023090A2 (en) * | 2011-08-09 | 2013-02-14 | Fusion-Io, Inc. | Systems and methods for a file-level cache |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
WO2017079313A1 (en) * | 2015-11-03 | 2017-05-11 | Nec Laboratories America, Inc. | Systems and methods for distributed assignment of the task identifiers |
CN105516367A (zh) * | 2016-02-02 | 2016-04-20 | 北京百度网讯科技有限公司 | 分布式数据存储系统、方法和装置 |
CN106250226A (zh) * | 2016-08-02 | 2016-12-21 | 福建华渔未来教育科技有限公司 | 基于一致性哈希算法的任务调度机制及系统 |
CN106357449A (zh) * | 2016-09-27 | 2017-01-25 | 深圳市彬讯科技有限公司 | 一种zedis分布式缓存方法 |
CN106572153A (zh) * | 2016-10-21 | 2017-04-19 | 乐视控股(北京)有限公司 | 集群的数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110351313A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351313B (zh) | 数据缓存方法、装置、设备及存储介质 | |
CN106878473B (zh) | 一种消息处理方法、服务器集群及系统 | |
EP3620905B1 (en) | Method and device for identifying osd sub-health, and data storage system | |
CN106331098B (zh) | 一种服务器集群系统 | |
CN108847982B (zh) | 一种分布式存储集群及其节点故障切换方法和装置 | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN109491609B (zh) | 一种缓存数据处理方法、装置、设备及可读存储介质 | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN105159795A (zh) | 数据同步方法、装置和系统 | |
CN111176888B (zh) | 云存储的容灾方法、装置及系统 | |
CN111198662A (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN112612769A (zh) | 文件处理方法、装置及存储介质 | |
CN110209526A (zh) | 一种存储层同步系统、及存储介质 | |
CN116302352A (zh) | 集群灾备处理方法、装置、电子设备和存储介质 | |
CN111752488A (zh) | 存储集群的管理方法、装置、管理节点及存储介质 | |
CN116781488A (zh) | 数据库高可用实现方法、装置、数据库架构、设备和产品 | |
CN105138280B (zh) | 数据写入方法、装置及系统 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN107526652B (zh) | 一种数据同步方法及存储设备 | |
JP2015035160A (ja) | 監視データ記憶装置、監視データ記憶方法およびプログラム | |
US10169440B2 (en) | Synchronous data replication in a content management system | |
CN111177104B (zh) | 一种nas存储系统的日志下刷方法及装置 | |
CN115314361B (zh) | 一种服务器集群管理方法及其相关组件 | |
CN113268395B (zh) | 业务数据的处理方法、处理装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |