转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426
一、目的
Redis-Cluster是Redis的分布式解决方案,Redis Cluster提供了在线扩容(添加分片)功能,有效扩展存储能力和读写能力。
水平扩容思路如下:
1. 启动新的Redis实例。
2. 集群中的机器meet上述Redis实例,将其加入集群。
3. 由于新的实例没有指派槽,所以要将部分其他实例上面的槽迁移至新的实例。
二、具体实现:(已建立好的集群参考http://carlosfu.iteye.com/blog/2242578)
1. 启动新的Redis实例,端口是8007
sed 's/8000/8007/g' redis-8000.conf > redis-8007.conf redis-server /opt/soft/redis/conf/redis-8007.conf
2. 将8007加入集群
redis-cli -c -p 8000 cluster meet 127.0.0.1 8007
上述两步,已经在之前文档里面详细介绍过了,这里就不在赘述了。
3. 重新分片:(redis作者提供了redis-trib.rb工具支持在线扩容功能)
redis-trib.rb reshard 127.0.0.1:8007
#根据提示选择要迁移的slot(ps:这里选择500)
How many slots do you want to move (from 1 to 16384)? 500
#选择要接受这些slot的node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择slot来源:
#all表示从所有的master重新分配,
#或者数据要提取slot的master节点id,最后用done结束
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:all
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束
#根据提示选择要迁移的slot(ps:这里选择500)
How many slots do you want to move (from 1 to 16384)? 500
#选择要接受这些slot的node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择slot来源:
#all表示从所有的master重新分配,
#或者数据要提取slot的master节点id,最后用done结束
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:all
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束
集群状态:
127.0.0.1:8000> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:8 cluster_size:5 cluster_current_epoch:7 cluster_my_epoch:1 cluster_stats_messages_sent:193766 cluster_stats_messages_received:193765
相关推荐
Redis-Cluster是Redis的一种分布式实现,它通过分片(sharding)技术将数据分散存储在多个节点上,以实现高可用性和水平扩展性。在进行Redis-Cluster实战之前,首要任务是正确安装并配置所有必要的组件,其中包括...
在 Redis 的众多特性中,Redis Cluster 是其分布式集群解决方案,旨在提供高可用性和水平扩展能力。`redis-cluster.tar.gz` 文件包含了实现 Redis 集群所需的相关脚本和配置。 Redis 集群通过将数据分散到多个节点...
windows一键Redis-Cluster集群工具(32位Redis-v3.0.504),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,一键Redis-Cluster集群工具等,64位请自行替换相关资源包即可,相关文章见:...
在Windows环境下配置Redis Cluster,你需要一系列工具,这个"redis-cluster工具包(64位).7z"就提供了这些必备组件。下面将详细介绍其中每个文件的作用以及如何使用它们来搭建Redis Cluster。 1. `rubyinstaller-...
sudo yum -y install gcc gcc-c++ tcl zlib zlib-devel ruby ruby-devel rubygems rpm-build # 下载 redis-3.2.1.gem然后本地安装 sudo gem install -l ./redis-3.2.1.gem port 6379 daemonize yes #bind自己的ip ...
Redis Cluster是Redis提供的分布式解决方案,它通过将数据分片到多个节点来实现高可用性和水平扩展。使用此gem包的流程如下: 1. **Ruby环境**:确保系统已经安装了Ruby和RubyGems,可以通过`ruby -v`和`gem -v`...
**Redis Cluster 搭建全攻略** Redis 是一个高性能的键值存储系统,而 Redis Cluster 是它的分布式解决方案,提供数据的自动分片、故障转移和高可用性。本指南将详细讲解如何完整地搭建一个 Redis Cluster,同时...
搭建redis集群文件,内含六个redis,文件配置已经全部修改好了,1、先在服务器安装下yum install ruby 和 yum install rubygems 2、然后解压文件上传到linux服务器 3、./redis-cluster-start-all.sh 开启reids 4、...
在Windows环境下搭建Redis-Cluster集群可以实现数据的高可用性和可扩展性。Redis-Cluster是Redis的分布式解决方案,它通过分片(sharding)和故障转移(failover)来确保数据的可靠性和服务的连续性。 在Windows上...
windows一键Redis-Cluster集群工具(32位Redis-v3.0.504),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,一键Redis-Cluster集群工具等,64位请自行替换相关资源包即可,相关文章见:
redis-trib.rb是官方提供的Redis Cluster的管理工具,无需额外下载,默认位于源码包的src目录下,但因该工具是用ruby开发的,所以需要准备相关的依赖环境。
Redis ruby集群工具,包括Redis x32 ruby redis-trib.rb rubygems-3.0.6.zip Redis ruby集群工具,包括Redis x32 ruby redis-trib.rb rubygems-3.0.6.zip Redis ruby集群工具,包括Redis x32 ruby redis-trib.rb ...
Redis 集群是 Redis 为实现数据分片和高可用性而设计的一种分布式解决方案。在集群模式下,数据被分散到多个节点上,每个节点负责一部分数据,同时通过复制和故障转移来确保服务的连续性。 `redis-trib.rb` 文件是 ...
改压缩包中含了centos7.x离线安装redis-cluster的所有相关文件,包括ruby-2.4.1.tar.gz,rubygems-2.7.6.tgz,zlib-1.2.11.tar.gz,redis-4.0.2.gem,tcl8.6.8-src.tar.gz
Redis集群是Redis的一个重要特性,它允许将数据分布到多个节点上,以实现水平扩展和高可用性。通过集群,用户可以处理更大规模的数据,并且在单个节点故障时仍能保持服务的连续性。在Redis 3.3.5版本中,已经支持...
"redis-3.0.0.gem"是Redis 3.0.0版本的Ruby gem包,用于在Ruby环境中安装和管理Redis服务器。 一、Redis集群的基本概念 Redis集群是一种分布式解决方案,可以将数据分散到多个节点上,提供高可用性和可扩展性。每个...
Ruby gem中的`redis`客户端库也支持集群模式,可以通过配置多个节点信息,使客户端能够透明地与集群中的任何节点交互,实现数据读写。例如: ```ruby require 'redis' redis = Redis.new(cluster: ['redis-node1:...
其中最显著的是引入了Redis Cluster,这是Redis的分布式解决方案,允许在多台机器上进行数据分片,提供高可用性和水平扩展性。此外,此版本还优化了性能,提高了命令处理速度,并修复了大量的bug,增强了系统的稳定...
值得注意的是,虽然 `redis-trib.rb` 在早期版本中是创建和管理集群的标准工具,但在 Redis 6.0 版本后,它已经被 `redis-cli --cluster` 命令取代,后者提供了更简洁的命令行接口。不过,对于 Redis 5.0 及之前的...