环境说明
- Docker
- Ubuntu/CentOS
- Redis v4.0.10
redis.conf
redis.conf
是Redis的核心配置文件,默认docker运行的redis是不存在配置文件的,这里可以先从官网下载:
wget http://download.redis.io/redis-stable/redis.conf
下面分别介绍是否指定redis.conf来搭建Redis主从。
不指定redis.conf
1. 运行Redis
1.1 master(主库)
代码语言:javascript复制 # 运行服务
docker run -it --name redis-master -d -p 6300:6379 redis redis-server --requirepass masterpassword
# 测试连接redis
docker exec -it redis-master redis-cli -a <master-password>
1.2 slave(从库)
代码语言:javascript复制 # 运行服务
docker run -it --name redis-slave -d -p 6301:6379 redis redis-server --requirepass slavepassword # 设定从库密码,可选
# 测试连接redis
docker exec -it redis-slave redis-cli
# 进行密码认证
auth <slave-password>
2. 主从连接及查看
2.1 从库配置
slaveof <master-ip> <master-port>
。<master-ip>
为主库服务ip,<master-port>
表示主库所在端口,默认6379
2.2 密码认证
config set masterauth <master-password>
。<master-password>
即为主库访问密码
2.3 测试命令
输入info
或info Replication
查看主从
指定redis.conf
将上面下载好的redis.conf复制,分别为redis-master.conf和redis-slave.conf,找到指定配置并修改如下:
- redis-master.conf
# bind 127.0.0.1 # 注释当前行,表示任意ip可连
daemonize yes # 让redis服务后台运行
requirepass masterpassword # 设定密码
- redis-slave.conf
# bind 127.0.0.1
daemonize yes
requirepass slavepassword # 从库密码,可选配置
# <masterip>表示主库所在的ip,而<masterport>则表示主库启动的端口,默认是6379
slaveof <masterip> <masterport>
# 主库有密码必需要配置,<master-password>代表主库的访问密码
masterauth <master-password>
1. 运行Redis
1.1 master(主库)
代码语言:javascript复制 # 运行服务
docker run -it --name redis-master -v /root/redis/redis-master.conf:/usr/local/etc/redis/redis.conf -d -p 6300:6379 redis /bin/bash
# 进入容器
docker exec -it redis-master bash
# 加载配置
redis-server /usr/local/etc/redis/redis.conf
# 测试连接
redis-cli -a <master-password>
1.2 slave(从库)
代码语言:javascript复制 # 运行服务
docker run -it --name redis-slave -v /root/redis/redis-slave.conf:/usr/local/etc/redis/redis.conf -d -p 6301:6379 redis /bin/bash
# 进入容器
docker exec -it redis-slave bash
# 加载配置
redis-server /usr/local/etc/redis/redis.conf
# 测试连接
redis-cli
# 密码认证
auth <slave-password>
2. 主从查看
输入info
或info Replication
查看主从
相关链接
Redis commands Redis 命令参考 Docker环境搭建redis集群(主从模式)