【笔记】Redis集群部署

前言

Redis集群部署,既扩容,又保证高可用
本文以3主3从,一共6台redis服务器为例

每台Redis的配置

允许远程访问

  • 修改redis.conf配置文件第69行,添加注释
redis.conf
1
# bind 127.0.0.1 ::1

关闭保护模式

  • 修改redis.conf配置文件第88行,改为no
redis.conf
1
protected-mode no

定义端口号

  • 修改redis.conf配置文件第92行
redis.conf
1
port 7000

修改pid文件存放位置

redis.conf
1
pidfile /usr/local/src/redis/cluster/7000/redis.pid

修改持久化文件存放目录

redis.conf
1
dir /usr/local/src/redis/7000/

修改内存优化策略

redis.conf
1
maxmemory-policy volatile-lru

不启动AOF

redis.conf
1
appendonly no

开启集群配置

redis.conf
1
cluster-enabled yes

开启集群配置文件

redis.conf
1
cluster-config-file nodes.conf

配置集群超时时间

redis.conf
1
cluster-node-timeout 15000

批量配置

  • 为每一个服务器创建独立的目录
1
2
3
4
5
6
7
8
mkdir cluster
cd cluster
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
  • 将默认配置文件复制到每个目录下
1
2
3
4
5
6
cp /usr/local/src/redis/redis.conf 7000/redis.conf
cp /usr/local/src/redis/redis.conf 7001/redis.conf
cp /usr/local/src/redis/redis.conf 7002/redis.conf
cp /usr/local/src/redis/redis.conf 7003/redis.conf
cp /usr/local/src/redis/redis.conf 7004/redis.conf
cp /usr/local/src/redis/redis.conf 7005/redis.conf
  • 批量修改配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vim 7001/redis.conf
:%s/7000/7001/g
:wq

vim 7002/redis.conf
:%s/7000/7002/g
:wq

vim 7003/redis.conf
:%s/7000/7003/g
:wq

vim 7004/redis.conf
:%s/7000/7004/g
:wq

vim 7005/redis.conf
:%s/7000/7005/g
:wq

启动与关闭

启动redis

编写启动服务脚本

  • 新建一个start.sh启动服务脚本
start.sh
1
2
3
4
5
6
7
#!/bin/sh
redis-server 7000/redis.conf &
redis-server 7001/redis.conf &
redis-server 7002/redis.conf &
redis-server 7003/redis.conf &
redis-server 7004/redis.conf &
redis-server 7005/redis.conf &

批量启动redis

1
sh start.sh

启动集群

编写启动集群脚本

  • 新建一个create.sh启动集群脚本
create.sh
1
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

启动集群

1
sh create.sh
  • Can I set the above configuration?
1
yes

关闭redis

编写关闭脚本

  • 新建一个stop.sh关闭集群脚本
stop.sh
1
2
3
4
5
6
7
#!/bin/sh
redis-cli -p 7000 shutdown &
redis-cli -p 7001 shutdown &
redis-cli -p 7002 shutdown &
redis-cli -p 7003 shutdown &
redis-cli -p 7004 shutdown &
redis-cli -p 7005 shutdown &

批量关闭redis

1
sh stop.sh

完成