Redis集群安装
1 安装前准备
1.1 安装环境
1.1.1 安装说明
Redis Cluster是社区版推出的Redis分布式集群解决方案,主要解决Redis分布式方面的需求,比如当遇到单机内存,并发和流量等瓶颈的时候,Redis Cluster能起到很好的负载均衡的目的。
Redis Cluster集群节点最小配置6个节点以上(3主3从),其中主节点提供读写操作,从节点作为备用节点,不提供请求,只作为故障转移使用。
1.1.2 操作系统
CentOS Linux release 7.5.1804 (Core)
1.1.3 主机规划
Redis 172.16.20.220 6379
Redis 172.16.20.221 6379
Redis 172.16.20.227 6379
Redis 192.168.251.161 6379
Redis 192.168.251.166 6379
Redis 192.168.251.174 6379
本文将演示将这6台机器配置成为3主3从的Redis集群。
1.1.4 系统配置说明
本文演示均需通过SSH连接到主机执行命令,请确保主机提供了SSH服务。
下载Redis会使用到wget命令,请确保主机提供了wget命令。
Redis服务和哨兵服务需要占用6379端口,请先设置防火墙开放这个端口。
1.1.5 Redis版本号说明
本文使用的Redis版本为5.0.5。
1.1.6 开放防火墙在这里插入代码片
a.本文需要将机器的6379端口开放
b.开放你redis实例端口号(6379)+10000的端口
因为redis集群有一个用于集群总线的端口
2 软件安装
Redis的安装步骤为:下载、解压、编译、配置、启动。
2.1 Redis服务安装
以下以220机器安装为例,其他5台机器安装类似。
2.1.1 SSH登录Redis主机
ssh root@172.16.20.220
2.1.2 下载Redis
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
2.1.3 解压
tar -zxvf redis-5.0.5.tar.gz
2.1.4 编译
cd redis-5.0.5/
make install PREFIX=/opt/redis/redis-5.0.5
PREFIX指定了Redis编译后的程序存放的磁盘路径,这里指定的是/opt/redis/redis-5.0.5。
2.1.5 配置
拷贝配置文件到Redis程序目录
cp redis.conf /opt/redis/redis-5.0.5/bin
redis.conf是Redis服务的配置文件;sentinel.conf是哨兵服务的配置文件。
编辑redis.conf文件。
cd /opt/redis/redis-5.0.5/bin
vim redis.conf
#### 绑定的网络地址
bind 172.16.20.227
#### 进程后台运行
daemonize yes
#### 绑定的网络端口
port 6379
#### 开启集群,把注释#去掉
cluster-enabled yes
#### 请求超时,默认15秒,可自行设置
cluster-node-timeout 10100
#### aof日志开启,有需要就开启,它会每次写操作都记录一条日志
appendonly yes
#### 指定了记录日志的文件
logfile "/opt/redis/redis-5.0.5/bin/log/redis.log"
#### 该目录要事先创建好,数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录
dir /opt/redis/redis-5.0.5/bin/data/
#### 配置密码
masterauth 123456
requirepass 123456
请注意,各个节点的密码都必须一致
bind需要改为内网地址,port默认为6379,其他的配置按需配置即可。
2.1.6 启动服务
启动各台机器上的Redis服务
cd /opt/redis/redis-5.0.5/bin
./redis-server redis.conf
3 配置集群
在6台机器中随意找一台使用redis-cli命令创建集群
cd /opt/redis/redis-5.0.5/bin
./redis-cli --cluster create 172.16.20.220:6379 172.16.20.221:6379 172.16.20.227:6379 192.168.251.161:6379 192.168.251.166:6379 192.168.251.174:6379 --cluster-replicas 1 -a 123456
cluster-replicas 1 表示: 一主一从配置,6个节点就是3主3从。
遇到Can I set the above configuration? (type ‘yes’ to accept)提示时输入yes并回车。
输出信息如下:
Performing hash slots allocation on 6 nodes…
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.251.166:6379 to 172.16.20.220:6379
Adding replica 192.168.251.174:6379 to 172.16.20.221:6379
Adding replica 192.168.251.161:6379 to 172.16.20.227:6379
M: b944baa03d1d100f16569e32768b9b40892e2234 172.16.20.220:6379
slots:[0-5460] (5461 slots) master
M: c4f1bdea78cf3942d464da3359d783d0121954d7 172.16.20.221:6379
slots:[5461-10922] (5462 slots) master
M: 38c6e07eeb7982eae1121af2ead42ae3a8bab820 172.16.20.227:6379
slots:[10923-16383] (5461 slots) master
S: 0d0fb05e4f7b38cd102af726f9f2c5c72b3a976c 192.168.251.161:6379
replicates 38c6e07eeb7982eae1121af2ead42ae3a8bab820
S: b01a21cb72a7d081111a3b7da70e94a5d392bd06 192.168.251.166:6379
replicates b944baa03d1d100f16569e32768b9b40892e2234
S: d18865f6e88f65cd568d24dc9aedd944f01bc282 192.168.251.174:6379
replicates c4f1bdea78cf3942d464da3359d783d0121954d7
Can I set the above configuration? (type ‘yes’ to accept): yes
Nodes configuration updated
Assign a different config epoch to each node
Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
…
Performing Cluster Check (using node 172.16.20.220:6379)
M: b944baa03d1d100f16569e32768b9b40892e2234 172.16.20.220:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: b01a21cb72a7d081111a3b7da70e94a5d392bd06 192.168.251.166:6379
slots: (0 slots) slave
replicates b944baa03d1d100f16569e32768b9b40892e2234
M: 38c6e07eeb7982eae1121af2ead42ae3a8bab820 172.16.20.227:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: c4f1bdea78cf3942d464da3359d783d0121954d7 172.16.20.221:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 0d0fb05e4f7b38cd102af726f9f2c5c72b3a976c 192.168.251.161:6379
slots: (0 slots) slave
replicates 38c6e07eeb7982eae1121af2ead42ae3a8bab820
S: d18865f6e88f65cd568d24dc9aedd944f01bc282 192.168.251.174:6379
slots: (0 slots) slave
replicates c4f1bdea78cf3942d464da3359d783d0121954d7
[OK] All nodes agree about slots configuration.
Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.
Redis Cluster采用虚拟槽分区,所有的键根据哈希函数映射到0~16383个整数槽内,每个节点负责维护一部分槽以及槽所映射的键值数据。输出了[OK] All 16384 slots covered.就说明集群配置好了。
4 验证
4.1 查看集群信息
随意登录一台主机执行 cluster info命令,下面以连接166机器为例。
cd /opt/redis/redis-5.0.5/bin
./redis-cli -h 192.168.251.166 -c -p 6379 -a 123456 cluster info
-c 表示集群连接
输出内容
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:7
cluster_my_epoch:1
cluster_stats_messages_ping_sent:1366
cluster_stats_messages_meet_sent:5
cluster_stats_messages_auth-req_sent:5
cluster_stats_messages_sent:1376
cluster_stats_messages_pong_received:1364
cluster_stats_messages_received:1364
4.2 查看节点信息
随意登录一台主机执行 cluster info命令。
cd /opt/redis/redis-5.0.5/bin
./redis-cli -h 192.168.251.166 -c -p 6379 -a 123456 cluster nodes
输出内容
d18865f6e88f65cd568d24dc9aedd944f01bc282 192.168.251.174:6379@16379 master - 0 1560410361399 7 connected 5461-10922
b944baa03d1d100f16569e32768b9b40892e2234 172.16.20.220:6379@16379 master - 0 1560410360510 1 connected 0-5460
c4f1bdea78cf3942d464da3359d783d0121954d7 172.16.20.221:6379@16379 slave d18865f6e88f65cd568d24dc9aedd944f01bc282 0 1560410361449 7 connected
0d0fb05e4f7b38cd102af726f9f2c5c72b3a976c 192.168.251.161:6379@16379 slave 38c6e07eeb7982eae1121af2ead42ae3a8bab820 0 1560410362401 4 connected
b01a21cb72a7d081111a3b7da70e94a5d392bd06 :6379@16379 myself,slave b944baa03d1d100f16569e32768b9b40892e2234 0 0 5 connected
38c6e07eeb7982eae1121af2ead42ae3a8bab820 172.16.20.227:6379@16379 master - 0 1560410359439 3 connected 10923-16383
从节点信息可以看出,174、220、227这3台主机上的Redis服务被设置成了主服务,221、161、166机器上的Redis服务被设置成了从服务。至此说明,集群配置是成功的。
- 密码配置
需要在每个Redis服务的配置文件redis.conf中添加密码设置。
通过redis-cli或Redis客户端访问时需要加上-a参数, -a后面指定密码,如,
./redis-cli -h 192.168.251.166 -c -p 6379 -a 123456 cluster nodes

1198

被折叠的 条评论
为什么被折叠?



