使用Docker拉取Redis
docker search redis
docker pull redis:latest
docker images
本地新建一个redis目录, 用于挂载redis.config 和 data
mkdir my-workspace/redis
cd redis
master节点配置文件 - redis.conf
bind * -::* #任意外部和内部端口访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
logfile "access.log"
查看redis master的内部IP
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2674f91946bf redis "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp, 0.0.0.0:6380->6380/tcp redis-slave
8dcc95b5c230 redis "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:6379->6379/tcp redis-master
docker inspect 8dcc95b5c230
#找到以下返回信息
#"IPAddress": "172.17.0.2",
salve节点配置文件 - redis-slave.conf
bind * -::* #任意外部和内部端口访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
logfile "access.log"
# 主地址
replicaof #容器内master节点Ip 6379
重启redis-salve节点
docker restart redis-slave
登陆主节点redis容器查看主从配置是否生效
→ redis-cli
→ info
# Replication
role:master
connected_slaves:1
slave0:ip=172.17.0.3,port=6379,state=online,offset=14,lag=0 #从节点准备就绪
master_failover_state:no-failover
master_replid:1089d1e52c38bc70a88908503b511733388806d8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:14
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:14