一、部署说明:
准备了三台主机,如下操作先完成10.1.61.11(主)的部署
10.1.61.11(作为主)
10.1.61.12(作为从)
10.1.61.13(作为从)
1、下载redis代码:
任意进入一个可以保存代码的路径下(/home/webjoin/local),执行下载操作
cd /home/webjoin/local
wget http://download.redis.io/releases/redis-7.0.13.tar.gz
2、解压代码
tar -zxvf redis-7.0.13.tar.gz
3、执行编译安装:
cd redis-7.0.13
make install PREFIX=/home/webjoin/local/redis/redis-7.0.13
mkdir log run working
说明:编译安装完成后,代码在bin目录下,PREFIX后面跟的路径是安装redis的位置,并创建了三个文件夹存放日志等文件
4、拷贝配置文件到bin目录下
cp /home/webjoin/local/redis-7.0.13/redis.conf /home/webjoin/local/redis/redis-7.0.13/bin
cp /home/webjoin/local/redis-7.0.13/sentinel.conf /home/webjoin/local/redis/redis-7.0.13/bin
redis.conf配置文件末尾添加(如果有和原redis.conf重复的参数,自行删除即可):
# 工作目录
dir /home/webjoin/local/redis/redis-7.0.13/working
# # 需要不同服务器的节点连通,就不能设置为 127.0.0.1
bind 0.0.0.0
# # 需要不同服务器的节点连通,这个就要设置为 no
protected-mode no
# # 设置后台运行redis
daemonize yes
# # 端口
# port 6379
# # 密码
requirepass i23456
# # PID文件
pidfile /home/webjoin/local/redis/redis-7.0.13/run/redis_6379.pid
# # LOG文件
logfile /home/webjoin/local/redis/redis-7.0.13/log/redis.log
# # RDB文件名
dbfilename dump.rdb
# # 开启AOF
appendonly yes
# # AOF文件名
appendfilename "appendonly.aof"
# # 主节点认证,主从节点均需要配置
masterauth 123456
sentinel.conf配置文件用以下就可以了(注意文件中我写的注意事项)
# 保护模式默认关闭
protected-mode no
# 哨兵端口
port 26379
# 后台运行
daemonize yes
# pid
pidfile "/home/webjoin/local/redis/redis-7.0.13/run/redis-sentinel.pid"
# log
logfile "/home/webjoin/local/redis/redis-7.0.13/log/redis-sentinel.log"
# 工作目录
dir "/home/webjoin/local/redis/redis-7.0.13/working"
# 监控Redis主服务
sentinel monitor redis-master 10.1.61.11 6379 2
# 配置认证密码
sentinel auth-pass redis-master 12345678
# S_DOWN时间
# 设置在故障转移后可以重新配置以同时使用新主服务器的副本数
# 故障转移超时时间
acllog-max-len 128
sentinel deny-scripts-reconfig yes
sentinel resolve-hostnames no
sentinel announce-hostnames no
#注意注意,从这往下的参数先不要填写,在bin目录下执行:./redis-sentinel sentinel.conf后即可生成下面# Generated by CONFIG REWRITE下面的几行,其中需要关注myid 对应的值,会在其它几个从服务器的哨兵配置中用到,参考下面最后几行
# Generated by CONFIG REWRITE
latency-tracking-info-percentiles 50 99 99.9
user default on nopass sanitize-payload ~* &* +@all
sentinel myid 3a80ffdf1610aa5d445a04e15f988adbc0dbba53
sentinel config-epoch redis-master 0
sentinel leader-epoch redis-master 1
sentinel current-epoch 1
#哨兵配置
sentinel known-replica redis-master 10.1.61.12 6379
sentinel known-replica redis-master 10.1.61.13 6379
sentinel known-sentinel redis-master 10.1.61.12 26379 ebf711bac3990a534fc068312b7622c849dc65e5
sentinel known-sentinel redis-master 10.1.61.13 26379 ec8837fb38d22daa9800b82006130fe625d959ff
#ebf711bac3990a534fc068312b7622c849dc65e5和ec8837fb38d22daa9800b82006130fe625d959ff是10.1.61.12、10.1.61.13的myid对应的值
#每台机器都配其它两台机器的ip和端口(redis端口、哨兵端口)、myid
安装上面步骤执行完成后,即可启动redis了(需要启动两个,一个是redis,一个是哨兵):
./redis-server redis.conf
./redis-sentinel sentinel.conf
上面redis的主服务器就安装好了,下面进行两个从服务器进行安装redis
5、安装从redis(10.1.61.12和10.1.61.13)
复用1~4步骤,新增配置
redis.conf文件末尾新增如下参数:
#表示关联对应的主服务器和端口
replicaof 10.1.61.11 6379
操作完以上就可以完成10.1.61.12、10.1.61.13从服务器的配置,按照步骤4启动
6、安装完成验证:
验证主服务器(10.1.61.11):
#在bin目录下执行,其中123456是密码
./redis-cli -p 6379 -a '123456'
#执行结果
127.0.0.1:6379> info replication
# Replication
role:master(代表他是主)
connected_slaves:2(代表他和两个从服务器链接)
slave0:ip=10.1.61.12,port=6370,state=online,offset=121147,lag=0
slave1:ip=10.1.61.13,port=6379,state=online,offset=121147,lag=1
master_failover_state:no-failover
master_replid:ba21bec2faf57f89808b153b07a7981f786e7dcc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:121147
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:121147
127.0.0.1:6379>
验证从服务器(10.1.61.12):
#在bin目录下执行
./redis-cli -p 6379 -a '123456'
#执行结果
127.0.0.1:6379> info replication
# Replication
role:slave(代表他是从服务器)
master_host:10.1.61.11(代表他对应的主服务器是10.1.61.11)
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_read_repl_offset:121035
slave_repl_offset:121035
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:ba21bec2faf57f89808b153b07a7981f786e7dcc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:121035
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:121035
127.0.0.1:6379>
7、完成
ip | 密码 | redis端口 | 哨兵端口 |
10.1.61.11 | 123456 | 6379 | 26379 |
10.1.61.12 | 123456 | 6379 | 26379 |
10.1.61.13 | 123456 | 6379 | 26379 |