基于阿里云 centos7,单机启动多个redis实例

安装docker(略)

安装redis

  • 查找redis镜像:
1
2
3
docker search redis
docker pull docker.io/redis
docker images
  • 挂载目录
1
2
3
4
mkdir -p /data/redis_data
cd /data/redis_data
touch redis_6379.conf
vi redis_6379.conf
  • 端口配置 redis_6379.conf redis_6380.conf redis_6381.conf
配置说明:

dir:工作目录 logfile:日志文件在工作目录下 slaveof:指明为主机一的从机 requirepass:redis客户端连接的认证密码,若不需要可不配置 masterauth:主从redis同步的认证密码,与连接密码同,若不需要可不用配置 appendonly:是否需要持久化,yes为需要

1
2
3
4
5
6
logfile "redis_6379.log"
port 6379
dir /data
appendonly yes
appendfilename appendonly.aof
requirepass 1234
1
2
3
4
5
6
7
8
logfile "redis_6380.log"
port 6380
dir /data
appendonly yes
appendfilename appendonly.aof
slaveof 0.0.0.0 6379
masterauth 1234
requirepass 1234
1
2
3
4
5
6
7
8
logfile "redis_6381.log"
port 6381
dir /data
appendonly yes
appendfilename appendonly.aof
slaveof 0.0.0.0 6379
masterauth 1234
requirepass 1234

启动容器

命令说明:

-p 6379:6379 : 将容器的6379端口映射到主机的6379端口 -v /data/redis_data:/data : 将主机中目录/data/redis_data挂载到容器的/data –name redis-6379: 给出容器名称 -d: 后台运行 docker.io/redis: 镜像名称 redis-server redis_6379.conf: redis的启动命令,指定配置文件

1
2
3
4
5
docker run -p 6379:6379 -v /data/redis_data/:/data --name redis-6379 -d docker.io/redis redis-server redis_6379.conf

docker run -p 6380:6380 -v /data/redis_data/:/data --name redis-6380 -d docker.io/redis redis-server redis_6380.conf

docker run -p 6381:6381 -v /data/redis_data/:/data --name redis-6381 -d docker.io/redis redis-server redis_6381.conf

建立哨兵目录和其配置文件

配置说明
  • logfile “sentinel.log”:输出日志目录
  • sentinel monitor mymaster 192.168.0.1 6379 1:哨兵监控的主服务器名称为mymaster,ip为192.168.0.1,端口为6379,将这个主服务器标记为失效至少需要1个哨兵进程的同意
  • sentinel auth-pass mymaster 1234 : 哨兵的认证密码
1
2
3
4
5
6
7
cd /data/redis_data
touch sentinel.conf
vi sentinel.conf

logfile "sentinel.log"
sentinel monitor mymaster 0.0.0.0 6379 1
sentinel auth-pass mymaster 1234
启动哨兵模式

docker run -p 26379:26379 -v /data/redis_data/:/data --name redis-26379 -d docker.io/redis redis-sentinel sentinel.conf

观察容器内哨兵情况:

docker exec -it 容器id /bin/bash