- 浏览: 78116 次
- 性别:
- 来自: 北京
文章分类
最新评论
一、使用redis命令创建集群
在Redis安装目录下有创建集群的命令create-cluster start,首先进入该目录
cd /opt/redis-3.2.8/utils/create-cluster/
1、执行 ./create-cluster start后创建6个节点如下:
Starting 30001
Starting 30002
Starting 30003
Starting 30004
Starting 30005
Starting 30006
2、执行./create-cluster create后,键入yes
Using 3 masters:
127.0.0.1:30001
127.0.0.1:30002
127.0.0.1:30003
Adding replica 127.0.0.1:30004 to 127.0.0.1:30001
Adding replica 127.0.0.1:30005 to 127.0.0.1:30002
Adding replica 127.0.0.1:30006 to 127.0.0.1:30003
M: 914b965bb9f4f9058683149ab383c2b868845b51 127.0.0.1:30001
slots:0-5460 (5461 slots) master
M: c17b39b369260fca37d9eb125196ac4f91381a03 127.0.0.1:30002
slots:5461-10922 (5462 slots) master
M: ac9e5b70070fe6c020bb85cd11089871931a1937 127.0.0.1:30003
slots:10923-16383 (5461 slots) master
S: 6100cfd7a6711ec78132e636d9ea4f2dd4561a2b 127.0.0.1:30004
replicates 914b965bb9f4f9058683149ab383c2b868845b51
S: e8885db7349fb6f8b22d32895b6411d4dd95e21d 127.0.0.1:30005
replicates c17b39b369260fca37d9eb125196ac4f91381a03
S: 4490a4492b09757b4b6cb0203b3439c73aaab8c0 127.0.0.1:30006
replicates ac9e5b70070fe6c020bb85cd11089871931a1937
Can I set the above configuration? (type 'yes' to accept):
显示如下表示集群创建成功
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
3、查看集群状态
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:1229
cluster_stats_messages_received:1229
4、查看集群节点信息
ac9e5b70070fe6c020bb85cd11089871931a1937 127.0.0.1:30003 master - 0 1494133176091 3 connected 10923-16383
c17b39b369260fca37d9eb125196ac4f91381a03 127.0.0.1:30002 master - 0 1494133175688 2 connected 5461-10922
6100cfd7a6711ec78132e636d9ea4f2dd4561a2b 127.0.0.1:30004 slave 914b965bb9f4f9058683149ab383c2b868845b51 0 1494133176091 4 connected
914b965bb9f4f9058683149ab383c2b868845b51 127.0.0.1:30001 myself,master - 0 0 1 connected 0-5460
e8885db7349fb6f8b22d32895b6411d4dd95e21d 127.0.0.1:30005 slave c17b39b369260fca37d9eb125196ac4f91381a03 0 1494133176091 5 connected
4490a4492b09757b4b6cb0203b3439c73aaab8c0 127.0.0.1:30006 slave ac9e5b70070fe6c020bb85cd11089871931a1937 0 1494133176091 6 connected
二、手动指定端口,从6000开始,创建6个节点
1、启动6000节点
各参数说明:
port:节点端口号
cluster-enabled: 指定Redis运行为集群模式
cluster-config-file:集群配置文件路径,该文件保存集群的变化信息
cluster-node-timeout:节点失效时长,单位毫秒,其他主节点在指定时间内无法访问,则任务该节点失效。如果节点是master则触发salve,如果是salve则停止查询
cluster-slave-validity-factor:故障转移因子,超过cluster-node-timeout*cluster-slave-validity-factor的值,从节点将不能成为主节点
cluster-migration-barrier:最小从节点个数,例如:A--A1,A2,B-B1,C-C1,如果该值设置为2,当C故障时,C1成为主,A还是两个从节点,主C1将是0个从节点,因为该值为2
cluster-require-full-coverage:yes时,当集群中某个主节点故障时,整个集群将不可用,设置为no,hash到该节点的写操作失败,读操作正常
dbfilename:redis保存持久化数据的文件
daemonize:yes表示后台模式运行
可以通过bind参数绑定ip,比如--bind 192.168.174.128,跨物理机构建时可以绑定ip
2、修改以上脚本中的端口,启动6001,6002节点
3、添加节点hash映射
4、添加configuration epoch,设置一个数字,描述集群特定时间点的状态,当节点故障转移或者重新分片时使用该值
5、添加节点间互访
CLUSTER MEET在节点间可以自动传播
6、查看集群信息
cluster_state:ok
……
至此集群主节点配置完成
7、添加从节点
创建6003节点,将6003加入集群中
执行redis-cli -c -p 6000 cluster nodes 查看节点
……
632a1c4ad59406434d312690045ea9a29eb43be4 127.0.0.1:6000 myself,master - 0 0 1 connected 0-5460
8、将6003设置为6000的从节点
再查看节点信息
39217187b8c9f9fea9792330cda5cbb5aa5f5c32 127.0.0.1:6003 slave 632a1c4ad59406434d312690045ea9a29eb43be4 0 1494145699026 1 connected,发现6003变为6000的salve
同理可以设置6004为6001,6005为6002的从节点,方法同上
三、Redis提供了一个Ruby的集群创建脚本
1、执行redis-server命令创建6个节点,
2、创建集群
Ruby脚本操作起来更简单便捷,省去中间步骤
在Redis安装目录下有创建集群的命令create-cluster start,首先进入该目录
cd /opt/redis-3.2.8/utils/create-cluster/
1、执行 ./create-cluster start后创建6个节点如下:
Starting 30001
Starting 30002
Starting 30003
Starting 30004
Starting 30005
Starting 30006
2、执行./create-cluster create后,键入yes
Using 3 masters:
127.0.0.1:30001
127.0.0.1:30002
127.0.0.1:30003
Adding replica 127.0.0.1:30004 to 127.0.0.1:30001
Adding replica 127.0.0.1:30005 to 127.0.0.1:30002
Adding replica 127.0.0.1:30006 to 127.0.0.1:30003
M: 914b965bb9f4f9058683149ab383c2b868845b51 127.0.0.1:30001
slots:0-5460 (5461 slots) master
M: c17b39b369260fca37d9eb125196ac4f91381a03 127.0.0.1:30002
slots:5461-10922 (5462 slots) master
M: ac9e5b70070fe6c020bb85cd11089871931a1937 127.0.0.1:30003
slots:10923-16383 (5461 slots) master
S: 6100cfd7a6711ec78132e636d9ea4f2dd4561a2b 127.0.0.1:30004
replicates 914b965bb9f4f9058683149ab383c2b868845b51
S: e8885db7349fb6f8b22d32895b6411d4dd95e21d 127.0.0.1:30005
replicates c17b39b369260fca37d9eb125196ac4f91381a03
S: 4490a4492b09757b4b6cb0203b3439c73aaab8c0 127.0.0.1:30006
replicates ac9e5b70070fe6c020bb85cd11089871931a1937
Can I set the above configuration? (type 'yes' to accept):
显示如下表示集群创建成功
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
3、查看集群状态
redis-cli -c -p 30001 cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:1229
cluster_stats_messages_received:1229
4、查看集群节点信息
127.0.0.1:30001> cluster nodes
ac9e5b70070fe6c020bb85cd11089871931a1937 127.0.0.1:30003 master - 0 1494133176091 3 connected 10923-16383
c17b39b369260fca37d9eb125196ac4f91381a03 127.0.0.1:30002 master - 0 1494133175688 2 connected 5461-10922
6100cfd7a6711ec78132e636d9ea4f2dd4561a2b 127.0.0.1:30004 slave 914b965bb9f4f9058683149ab383c2b868845b51 0 1494133176091 4 connected
914b965bb9f4f9058683149ab383c2b868845b51 127.0.0.1:30001 myself,master - 0 0 1 connected 0-5460
e8885db7349fb6f8b22d32895b6411d4dd95e21d 127.0.0.1:30005 slave c17b39b369260fca37d9eb125196ac4f91381a03 0 1494133176091 5 connected
4490a4492b09757b4b6cb0203b3439c73aaab8c0 127.0.0.1:30006 slave ac9e5b70070fe6c020bb85cd11089871931a1937 0 1494133176091 6 connected
二、手动指定端口,从6000开始,创建6个节点
1、启动6000节点
redis-server --port 6000 --cluster-enabled yes --cluster-config-file nodes-6000.conf --cluster-node-timeout 2000 --cluster-slave-validity-factor 10 --cluster-migration-barrier 1 --cluster-require-full-coverage yes --dbfilename dump-6000.rdb --daemonize yes
各参数说明:
port:节点端口号
cluster-enabled: 指定Redis运行为集群模式
cluster-config-file:集群配置文件路径,该文件保存集群的变化信息
cluster-node-timeout:节点失效时长,单位毫秒,其他主节点在指定时间内无法访问,则任务该节点失效。如果节点是master则触发salve,如果是salve则停止查询
cluster-slave-validity-factor:故障转移因子,超过cluster-node-timeout*cluster-slave-validity-factor的值,从节点将不能成为主节点
cluster-migration-barrier:最小从节点个数,例如:A--A1,A2,B-B1,C-C1,如果该值设置为2,当C故障时,C1成为主,A还是两个从节点,主C1将是0个从节点,因为该值为2
cluster-require-full-coverage:yes时,当集群中某个主节点故障时,整个集群将不可用,设置为no,hash到该节点的写操作失败,读操作正常
dbfilename:redis保存持久化数据的文件
daemonize:yes表示后台模式运行
可以通过bind参数绑定ip,比如--bind 192.168.174.128,跨物理机构建时可以绑定ip
2、修改以上脚本中的端口,启动6001,6002节点
3、添加节点hash映射
redis-cli -c -p 6000 CLUSTER ADDSLOTS {0..5460} redis-cli -c -p 6001 CLUSTER ADDSLOTS {5461..10922} redis-cli -c -p 6002 CLUSTER ADDSLOTS {10923..16383}
4、添加configuration epoch,设置一个数字,描述集群特定时间点的状态,当节点故障转移或者重新分片时使用该值
redis-cli -c -p 6000 CLUSTER SET-CONFIG-EPOCH 1 redis-cli -c -p 6001 CLUSTER SET-CONFIG-EPOCH 2 redis-cli -c -p 6002 CLUSTER SET-CONFIG-EPOCH 3
5、添加节点间互访
redis-cli -c -p 6000 CLUSTER MEET 127.0.0.1 6001 redis-cli -c -p 6000 CLUSTER MEET 127.0.0.1 6002
CLUSTER MEET在节点间可以自动传播
6、查看集群信息
redis-cli -c -p 6000 cluster info
cluster_state:ok
……
至此集群主节点配置完成
7、添加从节点
创建6003节点,将6003加入集群中
redis-cli -c -p 6003 CLUSTER MEET 127.0.0.1 6000
执行redis-cli -c -p 6000 cluster nodes 查看节点
……
632a1c4ad59406434d312690045ea9a29eb43be4 127.0.0.1:6000 myself,master - 0 0 1 connected 0-5460
8、将6003设置为6000的从节点
redis-cli -c -p 6003 CLUSTER REPLICATE 632a1c4ad59406434d312690045ea9a29eb43be4
再查看节点信息
39217187b8c9f9fea9792330cda5cbb5aa5f5c32 127.0.0.1:6003 slave 632a1c4ad59406434d312690045ea9a29eb43be4 0 1494145699026 1 connected,发现6003变为6000的salve
同理可以设置6004为6001,6005为6002的从节点,方法同上
三、Redis提供了一个Ruby的集群创建脚本
1、执行redis-server命令创建6个节点,
for port in 5000 5001 5002 5003 5004 5005 5006 5007; do redis-server --port ${port} --cluster-enabled yes --cluster-config-file nodes-${port}.conf --cluster-node-timeout 2000 --cluster-slave-validityfactor 10 --cluster-migration-barrier 1 --cluster-require-full-coverage yes --dbfilename dump-${port}.rdb --daemonize yes done
2、创建集群
./src/redis-trib.rb create --replicas 1 127.0.0.1:5000 127.0.0.1:5001 127.0.0.1:5002 127.0.0.1:5003 127.0.0.1:5004 127.0.0.1:5005
Ruby脚本操作起来更简单便捷,省去中间步骤
发表评论
-
Spring repository操作Cassandra
2018-12-16 16:08 21791、定义接口 通过继承 CrudRepository ... -
Cassandra的数据一致性策略
2018-12-02 22:58 1715一致性要求每次的请求都能返回最新的数据结果, ... -
Cassandra的数据建模
2018-11-14 23:24 1231Cassandra的数据建模主要是基于查询来设计数据的存储, ... -
MongoDB
2018-09-13 20:35 392Mongo内嵌文档添加自段 db.books.update ... -
MongoDB伪分布集群搭建
2018-04-22 16:33 1550OS:CentOS7 MongoDB 版本 ... -
mariadb版本升级
2017-09-30 15:52 873将Mariadb 5.*升级到10.2.9,官方源下载慢, ... -
MySQL引擎之InnoDB
2017-08-30 12:18 5821、锁模型 InnoDB有两种锁模型:共享锁、排它锁 ... -
MySql 数据库常用设置
2017-08-11 14:51 3691、设置远程连接 grant all privilege ... -
CockroachDB中SQL操作
2017-07-31 22:50 8571、多行数据插入 INSERT INTO acco ... -
CockroachDB本地集群
2017-07-02 20:21 1588安装环境 CentOS 7 Cockroach v1.0 ... -
分布式数据库CockroachDB
2017-06-30 14:55 7222CockroachDB(中文名蟑螂DB,所以又可以 ... -
Docker中的CockroachDB集群
2017-06-30 07:03 10481、拉取镜像 docker pull cockro ...
相关推荐
在本文中,我们将深入探讨如何在CentOS 6.6操作系统上安装Redis 3.2.5,并且详细讲解如何创建一个Redis集群。Redis是一种内存数据存储系统,常用于数据库、缓存和消息中间件,因其高效性能而备受青睐。 首先,让...
这会创建一个带有副本的Redis集群,每个主节点都有一个从节点,提供数据备份和故障恢复能力。 配置SpringCloud以连接Redis集群,你需要在Spring Boot的`application.yml`或`application.properties`中设置Redis连接...
此附件是快速搭建redis集群的脚本,方便灵活,减少了自己一大堆复杂的操作,像运行服务一样执行几条start,stop等命令即可轻松完成集群搭建。
3. 配置集群模式:在创建实例的过程中,选择“集群版”以创建Redis集群。集群版支持数据分片,提高了数据容错性和可扩展性。 4. 安全配置:设置访问密码,配置安全组规则,允许公网IP访问Redis实例。确保安全组规则...
通常,这个客户端是 `redis-trib.rb`,它是 Redis 集群创建和管理的命令行工具,包含在 Redis 源码树中。如果你已经安装了 Redis,你可以通过 `redis-cli` 访问它。如果没有,你需要从 Redis 官方网站下载源码,然后...
本篇文章将深入探讨如何在Spring Boot中实现对Redis集群的零配置整合,并介绍使用AOP实现的自定义缓存注解。 首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-...
本文将深入探讨如何使用Spring Data Redis构建一个Redis集群,以及如何通过Spring框架来操作Redis集群,存储对象集合,并提供一个基于Maven的可运行项目示例。 首先,Spring Data Redis是Spring框架的一个模块,它...
在本资源包中,提供了搭建Redis集群所需的各种工具和教程,帮助你在Windows环境下进行操作。 首先,让我们来了解Redis集群的基础知识。Redis集群通过分片(Sharding)技术将数据分散到多个节点上,实现数据的冗余和...
标题中的“rancher2.3.6部署redis集群配置教程.pdf”暗示了这份文档是针对特定版本的Rancher软件(版本号2.3.6)的使用教程,旨在指导用户如何部署Redis集群。Rancher是一款开源的容器管理平台,可以用来部署、管理...
`Ruby24-x64`可能是因为在某些旧版本的Redis集群创建过程中,需要用到Ruby来初始化集群。不过,从Redis 3.0开始,官方提供了`redis-cli --cluster create`命令,使得创建集群更加简便,不再依赖于Ruby。 在实际操作...
在这个例子中,我们创建了一个`HashMap`来存储键值对,然后调用`mset`方法将其批量插入到Redis集群。如果出现异常,程序会捕获并打印错误信息,最后记得关闭JedisCluster连接以释放资源。 为了更好地理解和优化代码...
在本文中,我们将深入探讨如何在SpringBoot应用中集成Redis集群以及如何配置Redis服务器。首先,Redis是一个开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。它以其高性能和易用性而备受青睐。...
Redis集群批处理一键搭建是指通过一个简单的批处理脚本来快速构建和配置四个节点的Redis集群。这种方式极大地简化了安装和部署过程,使得在64位操作系统上启用Redis集群变得更加便捷。Redis是一个开源的、高性能的...
Redis集群配置文件是实现Redis高可用性和数据分片的关键组件。在Redis集群中,数据被分散存储在多个节点上,每个节点负责一部分数据,从而提高了系统的扩展性和容错性。以下将详细介绍Redis集群配置文件的相关知识,...
- 连接所有节点,执行集群创建命令。 - 监控启动状态,确保所有节点都已启动并加入集群。 6. **脚本示例** ```bash @echo off set REDIS_PATH=C:\path\to\redis for %%i in (node1,node2,node3,node4,node5,...
本篇文档详细介绍了在Linux环境下安装Redis集群的全过程,包括了系统环境的准备、软件包的下载与安装、目录的规划与创建、Ruby环境的安装、Redis的编译与安装、服务安装脚本的执行、集群节点的配置以及各个关键步骤...
**Redis集群** Redis集群是为了解决单一实例在高并发、大数据量场景下的性能瓶颈问题而设计的。Redis集群通过数据分片(Sharding)策略将数据分散存储在多个节点上,实现负载均衡,增强系统的扩展性和可用性。在...
在本文中,我们将深入探讨Linux系统中的Redis集群以及如何在Windows环境下搭建Redis集群。首先,我们来看一下标题和描述中提及的关键组件。 标题提到了“Linux系统中redis集群包”,这意味着我们要讨论的是在Linux...
创建Redis集群需要借助`redis-cli`工具,具体步骤如下: 1. 确保所有节点都已启动 2. 使用`redis-cli --cluster create`命令创建集群 例如: ```bash redis-cli --cluster create node1_ip:node1_port node2_ip:...
"Redis集群和哨兵搭建文档" 本文档详细介绍了在 Linux 系统中搭建 Redis 集群和哨兵的步骤。Redis 是一个高性能的 key-value 数据库,遵守 BSD 协议,完全开源免费。 一、Redis 概述 Redis 是一个开源的、基于...