Redis集群负载均衡方法、装置、设备及存储介质与流程

文档序号:36829587发布日期:2024-01-26 16:43阅读:16来源:国知局
Redis集群负载均衡方法、装置、设备及存储介质与流程

本申请涉及数据存储,具体涉及一种redis集群负载均衡方法、装置、设备及存储介质。


背景技术:

1、redis 集群是一个可以在多个节点之间进行数据共享的设施。一个 redis 集群包含16384 个槽位(slot),对于进入redis的每个键值对,将键值对(key-value)中的键经过crc16计算后对16384取模来决定键值对放置哪个槽位,每一个节点负责维护一部分槽位以及槽位中的键值对。redis集群构建完成后,会维护每个节点对应的槽位。

2、然而,当哈希分布不均匀时,某些槽位中的键值对数量可能特别多,这些键值对数量多的槽位又可能对应同一个节点,导致redis集群中不同节点的负载不平衡,某些节点的负载过重而其他的节点则相对空闲。


技术实现思路

1、本申请提供一种redis集群负载均衡方法、装置、设备及存储介质,可以解决现有技术中存在的redis集群中不同节点的负载不平衡的技术问题。

2、第一方面,本申请实施例提供一种redis集群负载均衡方法,所述redis集群负载均衡方法包括:

3、若任一槽位中的键值对数量大于预设阈值,则将该槽位标记为易满槽位,针对该槽位中的每个键值对,根据预设算法和键值对中的键得到替换键,根据键值对中的值和替换键得到等效键值对,将等效键值对写入替换键对应的槽位,删除键值对,其中,不同的键基于预设算法得到的键不同;

4、若用户操作使用的键对应的槽位为易满槽位,则根据预设算法和用户操作使用的键得到替换键,通过替换键对应的槽位对应的节点进行相关操作。

5、进一步地,一实施例中,所述根据预设算法和键值对中的键得到替换键的步骤包括:

6、若键值对中的键不具有特征标识,则由键值对中的键生成具有特征标识的替换键;

7、若键值对中的键具有特征标识,则将键值对中的键作为替换键。

8、进一步地,一实施例中,所述由键值对中的键生成具有特征标识的替换键的步骤包括:

9、根据键值对中的键和哈希算法生成中间结果;

10、向中间结果添加特征标识得到替换键。

11、进一步地,一实施例中,当用户操作为添加键值对时,相关操作包括:

12、根据用户输入的值和替换键得到等效键值对,将等效键值对写入替换键对应的槽位。

13、进一步地,一实施例中,当用户操作为读取键值对、修改键值对或删除键值对时,相关操作包括:

14、根据替换键获取对应的等效键值对,针对等效键值对进行读取、修改或删除操作。

15、第二方面,本申请实施例还提供一种redis集群负载均衡装置,所述redis集群负载均衡装置包括:

16、减负模块,用于若任一槽位中的键值对数量大于预设阈值,则将该槽位标记为易满槽位,针对该槽位中的每个键值对,根据预设算法和键值对中的键得到替换键,根据键值对中的值和替换键得到等效键值对,将等效键值对写入替换键对应的槽位,删除键值对,其中,不同的键基于预设算法得到的键不同;

17、访问模块,用于若用户操作使用的键对应的槽位为易满槽位,则根据预设算法和用户操作使用的键得到替换键,通过替换键对应的槽位对应的节点进行相关操作。

18、进一步地,一实施例中,所述减负模块用于:

19、若键值对中的键不具有特征标识,则由键值对中的键生成具有特征标识的替换键;

20、若键值对中的键具有特征标识,则将键值对中的键作为替换键。

21、进一步地,一实施例中,所述减负模块用于:

22、根据键值对中的键和哈希算法生成中间结果;

23、向中间结果添加特征标识得到替换键。

24、第三方面,本申请实施例还提供一种redis集群负载均衡设备,所述redis集群负载均衡设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的redis集群负载均衡程序,其中所述redis集群负载均衡程序被所述处理器执行时,实现上述redis集群负载均衡方法的步骤。

25、第四方面,本申请实施例还提供一种存储介质,所述存储介质上存储有redis集群负载均衡程序,其中所述redis集群负载均衡程序被处理器执行时,实现上述redis集群负载均衡方法的步骤。

26、本申请中,在任一槽位的键值对数量超出预设阈值后将该槽位标记为易满槽位,通过预设算法对原键值对中的键进行二次计算得到替换键,进而将原键值对转换为等效键值对以实现槽位的二次分配,对易满槽位进行减负。用户操作时,先检测用户操作使用的键对应的槽位是否为易满槽位,若不为易满槽位,执行常规流程,若为易满槽位,则通过预设算法对用户操作使用的键进行二次计算得到替换键,进而将用户针对原键值对的操作转换为针对等效键值对的操作。通过本申请,在用户无感知的情况下,对槽位中的键值对数量进行有效控制,使得redis集群中不同节点的负载分布更均匀。



技术特征:

1.一种redis集群负载均衡方法,其特征在于,所述redis集群负载均衡方法包括:

2.如权利要求1所述的redis集群负载均衡方法,其特征在于,所述根据预设算法和键值对中的键得到替换键的步骤包括:

3.如权利要求2所述的redis集群负载均衡方法,其特征在于,所述由键值对中的键生成具有特征标识的替换键的步骤包括:

4.如权利要求1所述的redis集群负载均衡方法,其特征在于,当用户操作为添加键值对时,相关操作包括:

5.如权利要求1所述的redis集群负载均衡方法,其特征在于,当用户操作为读取键值对、修改键值对或删除键值对时,相关操作包括:

6.一种redis集群负载均衡装置,其特征在于,所述redis集群负载均衡装置包括:

7.如权利要求6所述的redis集群负载均衡装置,其特征在于,所述减负模块用于:

8.如权利要求7所述的redis集群负载均衡装置,其特征在于,所述减负模块用于:

9.一种redis集群负载均衡设备,其特征在于,所述redis集群负载均衡设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的redis集群负载均衡程序,其中所述redis集群负载均衡程序被所述处理器执行时,实现如权利要求1至5中任一项所述的redis集群负载均衡方法的步骤。

10.一种存储介质,其特征在于,所述存储介质上存储有redis集群负载均衡程序,其中所述redis集群负载均衡程序被处理器执行时,实现如权利要求1至5中任一项所述的redis集群负载均衡方法的步骤。


技术总结
本申请提供一种Redis集群负载均衡方法、装置、设备及存储介质,该方法包括:若任一槽位中的键值对数量大于预设阈值,则将该槽位标记为易满槽位,针对该槽位中的每个键值对,根据预设算法和键值对中的键得到替换键,根据键值对中的值和替换键得到等效键值对,将等效键值对写入替换键对应的槽位,删除键值对,其中,不同的键基于预设算法得到的键不同;若用户操作使用的键对应的槽位为易满槽位,则根据预设算法和用户操作使用的键得到替换键,通过替换键对应的槽位对应的节点进行相关操作。通过本申请,在用户无感知的情况下,对键值对数据过多的槽位进行减负,使得Redis集群的负载分布更均匀。

技术研发人员:杨辉
受保护的技术使用者:中电云计算技术有限公司
技术研发日:
技术公布日:2024/1/25
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1