Redis高可用集群搭建
# 1 解压安装包
提示
redis-7.0.0.tar.gz 安装包已先上传到 / 根目录上。
redis下载地址:https://redis.io/download/
# 解压
tar -zxvf redis-7.0.0.tar.gz -C /louis
1
2
2
# 2 修改配置文件
修改配置文件/louis/redis-7.0.0/redis.conf
daemonizeyes#后台启动
protected‐modeno#关闭保护模式,开启的话,只有本机才可以访问redis
# 需要注释掉bind,bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可
# bind127.0.0.1
1
2
3
4
2
3
4
# 3 启动服务(单机)
启动服务
src/redis‐serverredis.conf
# 验证启动是否成功
ps‐ef|grepredis
# 进入redis客户端
src/redis‐cli
# 退出客户端
quit
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
退出服务
pkill redis‐server
kill 进程号
src/redis‐cli shutdown
1
2
3
4
5
2
3
4
5
# 4 集群搭建
提示
由于资源有限,只有一个虚拟机,在一台虚拟机上搭建3主3从(模拟3台机器,每台机器一主一从)。
mkdir /louis/redis-cluster-1
cd /louis/redis-cluster-1
mkdir 8001 8004
# 把之前的redis.conf配置文件copy到8001下
cp /louis/redis.conf /louis/redis-cluster-1/8001/redis.conf
1
2
3
4
5
2
3
4
5
# 4.1 修改配置
vi redis.conf
#####################
daemonize yes
# 分别对每个机器的端口号进行设置
port 8001
# 把pid进程号写入pidfile配置的文件
pidfile /var/run/redis_8001.pid
# 指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis‐cluster/8001/(
# 启动集群模式
cluster‐enabled yes
#集群节点信息文件,这里800x最好和port对应上
cluster‐config‐file nodes‐8001.conf
cluster‐node‐timeout 10000
# bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind
# bind 127.0.0.1
# 关闭保护模式
protected‐mode no
appendonly yes
# 如果要设置密码需要增加如下配置:
# 设置redis访问密码
requirepass louis
# 设置集群节点间访问密码,跟上面一致
masterauth louis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
把修改后的配置文件,copy到8004,修改端口号相关信息,可以用批量替换:
:%s/源字符串/目的字符串/g
1
即:
:%s/8001/8004/g
1
# 4.2 复制配置
复制配置作为另外“两台机器”的配置
cp -r redis-cluster-1 redis-cluster-2
cp -r redis-cluster-1 redis-cluster-3
1
2
2
cd /louis/redis-cluster-2
mv 8001 8002
mv 8004 8005
cd 8002
vi redis.conf
:%s/8001/8002/g
redis-cluster-1替换为redis-cluster-2
cd 8005
vi redis.conf
:%s/8004/8005/g
redis-cluster-1替换为redis-cluster-2
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
cd /louis/redis-cluster-3
mv 8001 8003
mv 8004 8006
cd 8003
vi redis.conf
:%s/8001/8003/g
redis-cluster-1替换为redis-cluster-3
cd 8006
vi redis.conf
:%s/8004/8006/g
redis-cluster-1替换为redis-cluster-3
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 4.3 启动各节点服务
/louis/redis-7.0.0/src/redis-server /louis/redis-cluster-1/8001/redis.conf
/louis/redis-7.0.0/src/redis-server /louis/redis-cluster-1/8004/redis.conf
/louis/redis-7.0.0/src/redis-server /louis/redis-cluster-2/8002/redis.conf
/louis/redis-7.0.0/src/redis-server /louis/redis-cluster-2/8005/redis.conf
/louis/redis-7.0.0/src/redis-server /louis/redis-cluster-3/8003/redis.conf
/louis/redis-7.0.0/src/redis-server /louis/redis-cluster-3/8006/redis.conf
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
查看启动情况
ps -ef |grep redis
root 6430 1 0 23:07 ? 00:00:00 /louis/redis-7.0.0/src/redis-server *:8001 [cluster]
root 6436 1 0 23:07 ? 00:00:00 /louis/redis-7.0.0/src/redis-server *:8004 [cluster]
root 6466 1 0 23:09 ? 00:00:00 /louis/redis-7.0.0/src/redis-server *:8002 [cluster]
root 6472 1 0 23:09 ? 00:00:00 /louis/redis-7.0.0/src/redis-server *:8005 [cluster]
root 6478 1 0 23:09 ? 00:00:00 /louis/redis-7.0.0/src/redis-server *:8003 [cluster]
root 6484 1 0 23:09 ? 00:00:00 /louis/redis-7.0.0/src/redis-server *:8006 [cluster]
root 6490 6261 0 23:09 pts/1 00:00:00 grep --color=auto redis
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
使用redis‐cli创建redis集群
/louis/redis-7.0.0/src/redis-cli --cluster create --cluster-replicas 1 172.16.227.132:8001 172.16.227.132:8002 172.16.227.132:8003 172.16.227.132:8004 172.16.227.132:8005 172.16.227.132:8006
# 不加-a 密码的话,会出现报错,中途有个地方需要手动输入yes即可。
1
2
3
2
3
提示
上面的命令只能在新创健集群的时候执行一次,目的是为了建立内部各个节点的对应关系,比如主从关系。
# 4.4 验证集群
连接任意一个客户端即可: ./redis‐cli ‐c ‐h ‐p (‐a访问服务端密码,‐c表示集群模式,-h指定ip地址, -p端口号)
/louis/redis-7.0.0/src/redis-cli -h 172.16.227.132 -p 8001
1
查看集群信息
cluster info
1
查看节点列表
cluster nodes
1
# 4.5 关闭集群
ps -ef | grep redis
root 6430 1 0 23:07 ? 00:00:07 /louis/redis-7.0.0/src/redis-server *:8001 [cluster]
root 6436 1 0 23:07 ? 00:00:08 /louis/redis-7.0.0/src/redis-server *:8004 [cluster]
root 6466 1 0 23:09 ? 00:00:07 /louis/redis-7.0.0/src/redis-server *:8002 [cluster]
root 6472 1 0 23:09 ? 00:00:07 /louis/redis-7.0.0/src/redis-server *:8005 [cluster]
root 6478 1 0 23:09 ? 00:00:07 /louis/redis-7.0.0/src/redis-server *:8003 [cluster]
root 6484 1 0 23:09 ? 00:00:07 /louis/redis-7.0.0/src/redis-server *:8006 [cluster]
kill -9 6430 6436 6466 6472 6478 6484
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9