安装部分参考 http://sgq0085.iteye.com/blog/2198597
一.对集群进行重新分片 redis-trib.rb reshard
对集群中共有的16384 slot(哈希槽)重新分片,是Redis集群维护的基础,添加和删除节点都涉及到该部分内容;
1.查看节点状态,slot(哈希槽)状态和节点ID并记录下节点ID
./redis-trib.rb check 127.0.0.1:6379
2.发起重新分配 slot(哈希槽)请求
# 可以指定任意一个节点(M/S均可) ./redis-trib.rb reshard 127.0.0.1:7382 # 指定移动多少个 slot(哈希槽) How many slots do you want to move (from 1 to 16384)? 250 # 指定接收的节点 What is the receiving node ID? 0e910bc1ae0c16d1f6e754b2759cbb23897a0c6e # 指定取 slot(哈希槽)的节点 # 第一种ALL,除接收节点外,其他节点平均分配取slot # 第二种 指定节点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:538274656289381c0e488e95aaf6cd30731457eb Source node #2:done
二.添加Master节点 redis-trib.rb add-node
1.第一步添加一个空节点
参考http://sgq0085.iteye.com/blog/2198597
(1)启用新的端口添加配置文件
cp redis.conf /etc/redis/6383.conf
(2)根据端口号创建本地数据库存放路径
mkdir /var/redis/6383
(3)启动节点
redis-server /etc/redis/6383.conf
2.加入空节点到集群
add-node 将一个节点添加到集群里面, 第一个是新节点ip:port, 第二个是任意一个已存在节点ip:port
./redis-trib.rb add-node 127.0.0.1:6383 127.0.0.1:6380
3.给新节点分配slot(哈希槽)
How many slots do you want to move (from 1 to 16384)? 4096 What is the receiving node ID? 04e7c3cbea818d16bbc76080234ef6a2205f4199 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
(6)检查节点状态
./redis-trib.rb check 127.0.0.1:6383
三.添加slave节点 cluster replicate
1.添加并启动一个新节点
2.加入空节点到集群
./redis-trib.rb add-node 127.0.0.1:7383 127.0.0.1:6383 ./redis-trib.rb check 127.0.0.1:7383
3.将该节点设置为其它Master节点的slave从节点
(1)连接该节点
redis-cli -h 127.0.0.1 -p 7383
(2)设置master
cluster replicate 对应master的node-id
cluster replicate 04e7c3cbea818d16bbc76080234ef6a2205f4199在线添加slave 时,需要dump整个master进程,并传递到slave,再由 slave加载rdb文件到内存,rdb传输过程中Master可能无法提供服务,整个过程消耗大量io,小心操作.
四.删除一个Slave节点 redis-trib.rb del-node
#redis-trib del-node ip:port '<node-id>' ./redis-trib.rb del-node 127.0.0.1:7383 '7e5ee6d373563d97825a69caee95e6f0e4ed591d'
五.删除一个Master节点
1.将要删除的节点通过 redis-trib.rb reshard ,将slot(哈希槽)全部分配给其它节点
./redis-trib.rb reshard 127.0.0.1:6383 ./redis-trib.rb check 127.0.0.1:6380
相关推荐
2. Ruby:Redis集群配置工具`redis-trib.rb`是用Ruby编写的,因此需要安装Ruby环境。 步骤1:下载Redis源码 从Redis官网或者GitHub仓库下载Redis 3.0.0的源代码包,例如`redis-3.0.0.tar.gz`。解压后进入目录进行...
Redis是一款高性能的键值存储系统,...总的来说,"redis-3.0.0.tar"和"redis-3.0.0.gem"提供了在CentOS上搭建和管理Redis集群的全部工具。正确理解和运用这些工具,能够帮助开发者构建高效、稳定的分布式数据存储系统。
这个压缩包“redis-3.0.0&redis-3.0.0.gem.zip”包含了Redis服务器的源码包(redis-3.0.0.tar.gz)以及一个与Ruby相关的库(redis-3.0.0.gem),后者是用于在Ruby环境中构建Redis集群所必需的。 1. Redis 3.0.0 ...
- 如果用作生产环境,考虑使用哨兵(Sentinel)系统进行高可用部署,或集群(Cluster)模式以实现分布式存储。 以上就是Linux环境下安装Redis 3.0.0的基本流程和关键知识点,包括源码下载、解压、编译、配置、安装、...
以上就是利用"redis-3.0.0.gem"在Linux环境中搭建Redis集群的详细步骤,包括基本概念、安装、配置、初始化、测试和维护等关键环节。了解这些知识点,能够帮助你顺利构建并管理自己的Redis集群。
搭建redis集群文件,内含六个redis,文件配置已经全部修改好了,1、先在服务器安装下yum install ruby 和 yum install rubygems 2、然后解压文件上传到linux服务器 3、./redis-cluster-start-all.sh 开启reids 4、...
要在Ruby中使用Redis集群,需要配置客户端以连接多个节点,并指定集群模式: ```ruby redis_cluster = Redis.new(cluster: ['node1:6379', 'node2:6379']) ``` 对于集群,命令的路由和数据分布由Redis客户端...
在`redis-3.0.0.gem`中,可以创建连接到Redis集群的实例: ```ruby require 'redis/cluster' redis_cluster = Redis::Cluster.new(['node1:port', 'node2:port']) ``` 集群配置需要特别注意,因为数据会在节点间...
- **节点自动发现**:Redis 集群能够自动识别新加入的节点,并与其他节点建立连接。 - **主从选举机制**:当某个主节点出现故障时,集群会自动选举一个新的主节点来接管其工作负载。 - **在线分片(Hot Resharding)**...
在 Redis 3.0.0 中,最重要的更新之一是引入了 Redis Cluster,这是 Redis 的分布式解决方案,允许在多个节点之间分发数据,以实现水平扩展和高可用性。Redis Cluster 自动处理数据分区,通过槽的概念将键映射到特定...
Redis是一款高性能的键值对数据库,常用于缓存、消息队列等场景。...在实际项目中,还需要考虑配置文件的优化、数据持久化、主从复制、Sentinel集群或Cluster集群等高级特性,以满足高可用性和可扩展性需求。
在本资源包中,提供了搭建Redis集群所需的各种工具和教程,帮助你在Windows环境下进行操作。 首先,让我们来了解Redis集群的基础知识。Redis集群通过分片(Sharding)技术将数据分散到多个节点上,实现数据的冗余和...
在搭建Redis集群时,我们通常会采用Ruby语言来编写配置和管理脚本,因此了解如何使用Ruby与Redis交互是至关重要的。 首先,让我们深入了解一下Redis集群的基本概念。Redis集群是通过分布式方式提供服务,它可以将...
在本文中,我们将深入探讨如何在CentOS操作系统下搭建Redis集群。Redis是一个开源的、基于内存的数据存储系统,常用于数据库、缓存和消息中间件等场景。在集群模式下,Redis可以提供高可用性和数据分片,以支持更大...
Redis Cluster 是 Redis 3.0 版本引入的一项重要特性,它允许用户将 Redis 实例分组形成一个集群来提供高可用性和数据分区能力。通过这种方式,可以有效地提高系统的水平扩展能力,并确保即使某个节点出现故障,服务...