redis怎么做集群「建议收藏」

redis怎么做集群「建议收藏」redis有一个官方集群技术Redis Sharding集群,可以使用它来做集群,主要思想是采用哈希算法将Redis数据的key进行散列,通过hash函数,特定的key会映射到特定的Redis节点上。

redis怎么做集群「建议收藏」

Redis Sharding集群

Redis 3正式推出了官方集群技术,解决了多Redis实例协同服务问题。Redis Cluster可以说是服务端Sharding分片技术的体现,即将键值按照一定算法合理分配到各个实例分片上,同时各个实例节点协调沟通,共同对外承担一致服务。 (推荐学习:Redis视频教程)

多Redis实例服务,比单Redis实例要复杂的多,这涉及到定位、协同、容错、扩容等技术难题。这里,我们介绍一种轻量级的客户端Redis Sharding技术。

Redis Sharding可以说是Redis Cluster出来之前,业界普遍使用的多Redis实例集群方法。其主要思想是采用哈希算法将Redis数据的key进行散列,通过hash函数,特定的key会映射到特定的Redis节点上。这样,客户端就知道该向哪个Redis节点操作数据。

庆幸的是,java redis客户端驱动jedis,已支持Redis Sharding功能,即ShardedJedis以及结合缓存池的ShardedJedisPool。

Jedis的Redis Sharding实现具有如下特点:

采用一致性哈希算法(consistent hashing),将key和节点name同时hashing,然后进行映射匹配,采用的算法是MURMUR_HASH。

采用一致性哈希而不是采用简单类似哈希求模映射的主要原因是当增加或减少节点时,不会产生由于重新匹配造成的rehashing。一致性哈希只影响相邻节点key分配,影响量小。

为了避免一致性哈希只影响相邻节点造成节点分配压力,ShardedJedis会对每个Redis节点根据名字(没有,Jedis会赋予缺省名字)会虚拟化出160个虚拟节点进行散列。

根据权重weight,也可虚拟化出160倍数的虚拟节点。用虚拟节点做映射匹配,可以在增加或减少Redis节点时,key在各Redis节点移动再分配更均匀,而不是只有相邻节点受影响。

ShardedJedis支持keyTagPattern模式,即抽取key的一部分keyTag做sharding,这样通过合理命名key,可以将一组相关联的key放入同一个Redis节点,这在避免跨节点访问相关数据时很重要。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10857.html

(0)
上一篇 2022-12-20 18:00
下一篇 2022-12-20 19:00

相关推荐

  • 另一个安装实例已在运行_安装程序的一个实例已经在运行

    另一个安装实例已在运行_安装程序的一个实例已经在运行##多实例出现 充分的利用主机资源 拆分数据库,限制单个实例大小 资源隔离,减小相互影响 分担连接数 ##mysql配置文件读取 读取配置文件顺序: /etc/my.cnf /etc/mysql/m…

    2023-04-08
    105
  • 使用setup.py来管理Python项目的依赖

    使用setup.py来管理Python项目的依赖Python是一门广受欢迎和广泛应用的编程语言,拥有优秀的生态系统和强大的第三方包支持。当我们在开发Python项目的时候,通常需要引用许多第三方库和框架。这时候,就需要一个好的依赖管理工具来帮助我们管理这些依赖关系,以确保项目的可靠性和稳定性。在Python中,使用setup.py来管理项目依赖是一种非常常见的做法。

    2024-03-25
    28
  • sql数据库教程视频_微信公开课2020

    sql数据库教程视频_微信公开课2020十四、PostgreSQL 12.2企业级应用系列公开课:调优系列公开课(一) 1、如何获得慢查询的SQL语句 2、常见参数设置因子与应用案例 2.1、shared_buffers 2.2、wal_…

    2023-03-10
    107
  • MySQL数据库:3、SQL与NoSQL、数据库重要概念、SQL的基本语句「终于解决」

    MySQL数据库:3、SQL与NoSQL、数据库重要概念、SQL的基本语句「终于解决」一、SQL与NoSQL ​ 数据库服务端可以服务多种类型的客户端 ​ 客户端可以是自己开发的,也可以是python代码编写的,也可以是其他编程语言编写的 SQL 操作关系型数据的语言 NoSQL 操作

    2023-06-17
    101
  • Python数据类型:从基础到应用

    Python数据类型:从基础到应用Python是一种被广泛应用的高级编程语言,其数据类型使得程序员可以轻松地处理各种类型的数据。在此篇文章中,我们将从基础开始逐步介绍Python中的各种数据类型,并探讨其在实际应用中的用途。

    2024-03-14
    32
  • Python正则表达式:匹配和提取文本中的信息

    Python正则表达式:匹配和提取文本中的信息正则表达式是在文本处理中非常常用的工具。它是一种通用的语言,可以用来匹配、搜索和修改文本。Python中的re模块提供了支持正则表达式的工具,使其成为文本处理的不二之选。

    2024-04-08
    27
  • 大数据量分页查询优化_echarts异步加载数据

    大数据量分页查询优化_echarts异步加载数据摘要:随着offset的增加,查询的时长也会越来越长。当offset达到百万级别的时候查询时长通常是业务所不能容忍的。 本文分享自华为云社区《offset新探索:双管齐下,加速大数据量查询》,作者:

    2023-06-12
    106
  • 徐童:视频人物社交关系图生成与应用「终于解决」

    徐童:视频人物社交关系图生成与应用「终于解决」导读: 在线社交媒体平台的发展,带来了细粒度检索、视频语义摘要等媒体智能服务的巨大需求。现有的视频理解技术缺乏深入的语义线索,结合视频中人物的社交关系才能更完整、准确地理解剧情,从而提升用户体验,支撑

    2023-05-18
    104

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注