wangJiaLun-go

王加伦的技术分享

0%

redis 三主三从集群模式

Redis 三主三从集群模式

redis单机安装参照之前的 centos7安装redis

安装完成后在redis.conf修改配置

1
2
3
4
5
6
7
8
9
# 开启集群模式
cluster-enabled yes
# 每个集群节点都有一个集群配置文件。它是由Redis节点自动创建和更新的。每个Redis集群节点都需要一个不同的集群配置文件。
# 注:确保在同一系统中运行的实例没有重叠的集群配置文件名。集群的配置,配置文件首次启动自动生成。
cluster-config-file nodes-6379.conf
# 超时时间,超时则认为master宕机,随后主备切换
cluster-node-timeout 5000
# 开启AOF
appendonly yes

启动6台redis节点,启动报错就删除清空rdb,appendonly等文件再试.

创建集群(注意: redis3. *版本需要用redis-trib.rb构建集群, 之后版本不用)

1
2
# 创建集群,主节点和从节点比例为11-3为主,4-6为从,142536分别对应为主从关系
redis-cli --cluster create 192.168.31.161:6379 192.168.31.187:6379 192.168.31.202:6379 192.168.31.172:6379 192.168.31.25:6379 192.168.31.188:6379 --cluster-replicas 1

检查集群信息 (check任意一个节点)

redis-cli --cluster check 192.168.31.161:6379

集群模式redis-cli 添加 -c -h -p 指令

redis-cli -c -h 192.168.31.161 -p 6379

集群模式下的客户端命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cluster info :打印集群的信息
cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。

cluster meet <ip> <port> :将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
cluster forget <node_id> :从集群中移除 node_id 指定的节点。
cluster replicate <node_id> :将当前节点设置为 node_id 指定的节点的从节点。
cluster saveconfig :将节点的配置文件保存到硬盘里面。

cluster addslots <slot> [slot ...] :将一个或多个槽( slot)指派( assign)给当前节点。
cluster delslots <slot> [slot ...] :移除一个或多个槽对当前节点的指派。
cluster flushslots :移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
cluster setslot <slot> node <node_id> :将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
cluster setslot <slot> migrating <node_id> :将本节点的槽 slot 迁移到 node_id 指定的节点中。
cluster setslot <slot> importing <node_id> :从 node_id 指定的节点中导入槽 slot 到本节点。
cluster setslot <slot> stable :取消对槽 slot 的导入( import)或者迁移( migrate)。

cluster keyslot <key> :计算键 key 应该被放置在哪个槽上。
cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。
cluster getkeysinslot <slot> <count> :返回 count 个 slot 槽中的键