环境描述:
centos:7.6
docker:19.03.1
redis:6.0.9
对于centos怎么装docker,docker又怎么装redis镜像等等内容就不做概述了。如果还不会这个,就先去百度把这些前置技能学习下
本文并没有配置哨兵模式,且全部是在一台服务器上完成的。
以下是正文
先贴一个redis官方的配置文件,使用下面的命令可以直接获取
wget http://download.redis.io/redis-stable/redis.conf
第一步:先建立redis主从配置的文件夹,区分redis.conf配置文件的存放,1个主2个从
mkdir -p /config/redis/redis_master/conf
mkdir -p /config/redis/redis_slave_1/conf
mkdir -p /config/redis/redis_slave_2/conf
第二步:分别进入到对应的conf,使用
wget http://download.redis.io/redis-stable/redis.conf 下载redis标准配置文件
第三步:先配置master配置文件
(1)、进入config/redis/redis_master/conf文件夹下编辑redis.conf配置文件
这里贴下在linux中操作文件的命令
#linux编辑文件
vi x.txt 编辑文件,进入vi命令模式
i,o,a 进入编辑模式,esc退出编辑模式,进入命令模式。
x 删除当前字符
dd 删除当前行
u 恢复前一步操作(等同于windos中的ctrl+z撤销)
p 复制之前删除的行
:q! 退出而不保存
:wq 保存并退出
q! 忽略修改强行退出
(2)、修改以下配置
# 将这一行改为0.0.0.0,表示Redis可以接受任意ip的连接
bind 0.0.0.0
# 关闭保护模式
protected-mode no
# 让redis服务后台运行(no是默认值,我没有选择去改)
# daemonize no
# 设定密码,如果master中配置了密码,slave配置里就需要加这个配置(我们做测试,不去更改)
# requirepass xxxx
# 配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/var/log/redis/redis.log"
配置完成
第四步:启动master主配置redis
docker run -it --name redis6379 -v /config/redis/redis_master/conf/redis.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 redis /bin/bash
主节点配置结束
下面进入从节点配置
提示:如果没有下载官方redis.conf配置文件,请先进入到redis_slave_1/conf文件夹下使用wget http://download.redis.io/redis-stable/redis.conf下载配置文件
前言:配置之前需要先知道redis主节点的桥接IP,使用一下命令查看
docker inspect <container_id>
然后修改配置
# 将这一行改为0.0.0.0,表示Redis可以接受任意ip的连接
bind 0.0.0.0
# 关闭保护模式
protected-mode no
# 让redis服务后台运行(no是默认值,我没有选择去改)
# daemonize no
# 设定密码,如果master中配置了密码,slave配置里就需要加这个配置(我们做测试,不去更改)
# requirepass xxxx
# 配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/var/log/redis/redis.log"
# 设定master的IP和端口号(默认6379),低版本的该修改项为slaveof
# 注意这里的ip并不是服务器本身的IP,而是使用redis主节点的桥接地址
# replicaof 本身是注释掉的,在注释下面添加即可
replicaof 172.17.0.3 6379
从节点配置结束
启动从节点
启动成功,注意上面的路径和端口号不要再写成6379:6379了。
下面开始验证主从复制
先启动master主节点