前言
Redis的集群学习笔记
部署Redis集群
修改每台Redis节点的配置文件
- 修改
redis.conf配置文件第61行,允许远程访问
/etc/redis.conf
- 修改
redis.conf配置文件第80行,关闭保护模式
/etc/redis.conf
- 修改
redis.conf配置文件第84行,定义端口号
/etc/redis.conf
- 修改
redis.conf配置文件第721行,启用集群
/etc/redis.conf
- 修改
redis.conf配置文件第729行,指定集群配置文件
/etc/redis.conf1
| cluster-config-file nodes-6379.conf
|
- 修改
redis.conf配置文件第735行,配置集群超时时间
/etc/redis.conf1
| cluster-node-timeout 15000
|
创建Redis集群
创建固定比例的的主从节点
- 通过
--cluster-replicas指定每个主节点对应的从节点数量,Redis自动选举主节点
--cluster-replicas要求至少6个节点才可以创建集群
--cluster-replicas 1:每个主节点对应的从节点数量
1
| redis-cli --cluster create --cluster-replicas 1 192.168.0.1:6379 192.168.0.2:6379 192.168.0.3:6379 192.168.0.4:6379 192.168.0.5:6379 192.168.0.6:6379
|
1 2
| Can I set the above configuration? yes
|
启动每台Redis节点
1 2 3 4 5 6
| ssh root@192.168.0.1 redis-server /etc/redis.conf ssh root@192.168.0.2 redis-server /etc/redis.conf ssh root@192.168.0.3 redis-server /etc/redis.conf ssh root@192.168.0.4 redis-server /etc/redis.conf ssh root@192.168.0.5 redis-server /etc/redis.conf ssh root@192.168.0.6 redis-server /etc/redis.conf
|
创建任意比例的主从节点
主节定义关联的从节点
1 2
| redis-cli -h 192.168.0.1 -p 6379 cluster meet 192.168.0.2 6379 redis-cli -h 192.168.0.1 -p 6379 cluster meet 192.168.0.3 6379
|
主节点分配槽位
1
| redis-cli -h 192.168.0.1 -p 6379 cluster addslots {0..16383}
|
获取主节点id
1
| redis-cli -h 192.168.0.1 -p 6379 cluster nodes
|
从节点定义关联的主节点
<node_id>:上一步骤获取的主机id
1 2
| redis-cli -h 192.168.0.2 -p 6379 cluster replicate <node_id> redis-cli -h 192.168.0.3 -p 6379 cluster replicate <node_id>
|
启动每台Redis节点
1 2 3
| ssh root@192.168.0.1 redis-server /etc/redis.conf ssh root@192.168.0.2 redis-server /etc/redis.conf ssh root@192.168.0.3 redis-server /etc/redis.conf
|
判断当前节点是主节点还是从节点
1
| redis-cli -h 192.168.0.1 -p 6379 INFO REPLICATION
|
- 如果是主节点,返回
role:master;如果是从节点,返回role:slave
部署RedisSentinel哨兵集群
修改每台RedisSentinel哨兵节点的配置文件
- 修改
redis-sentinel.conf配置文件第17行,关闭保护模式
/etc/redis-sentinel.conf
- 修改
redis-sentinel.conf配置文件第69行,设置投票机制
<master_name>:指定主节点名
<master_ip>:主节点IP地址
<master_port>:主机端口号
2:达成故障转移所需的最小哨兵投票数,通常设置为总节点数/2+1(半数以上)
/etc/redis-sentinel.conf1
| sentinel monitor <master_name> <master_ip> <master_port> 2
|
- 修改
redis-sentinel.conf配置文件第98行,设置心跳检测宕机后多久更换主机
30000:默认30秒
/etc/redis-sentinel.conf1
| sentinel down-after-milliseconds <master_name> 30000
|
- 修改
redis-sentinel.conf配置文件第131行,设置更换主机超时时间,超时后将再次更换主机
180000:默认3分钟
/etc/redis-sentinel.conf1
| sentinel failover-timeout <master_name> 180000
|
启动每台RedisSentinel哨兵节点
1 2 3
| ssh root:192.168.0.1 redis-sentinel /etc/redis-sentinel.conf ssh root:192.168.0.2 redis-sentinel /etc/redis-sentinel.conf ssh root:192.168.0.3 redis-sentinel /etc/redis-sentinel.conf
|
完成