daemonize:redis采用的时单进程多线程的模式,当该配置设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid✍redis.conf中选项的pidfile设置的文件中,此时reids将一直运行,除非手动kill该进程

配置主节点(master)

  • 编写/redis/redis-6379.conf,作为redis启动时加载的配置文件
1
2
3
4
5
6
port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
requirepass *******
dir "/data"
  • 解释

    • daemonize:redis采用的时单进程多线程的模式,当该配置设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid✍redis.conf中选项的pidfile设置的文件中,此时reids将一直运行,除非手动kill该进程。
    • logfile:日志的文件名字,在工作目录下自动创建
    • dbfilename:dump文件的名字,在工作中自动创建
    • dir:工作目录的名字
    • requirepass 从结点的redis密码
  • 使用docker启动一个redis容器

1
docker run -it --name redis-master -p 6379:6379  -v ~/redis/redis-6379.conf:/redis/redis-6379.conf -d redis:latest /bin/bash
  • 解释
    • –name 容器的名字
    • -p 端口的映射关系
    • -v 将本地的配置文件挂载到容器中
    • -d 后台运行容器
  • 进入容器中启动redis
1
2
3
4
5
6
7
8
docker exec -it redis-master /bin/bash

cd ../redis
redis-server redis-6379.conf

//可以查看日志文件是否启动成功
cd /data
cat 6370.log

配置第一个从节点

  • 编写/redis/redis-6378.conf,作为redis启动时加载的配置文件
1
2
3
4
5
6
7
8
9
cat redis-6378.conf
port 6378
daemonize yes
logfile "6378.log"
dbfilename "dump-6378.rdb"
dir "/data"
requirepass *****
masterauth *****
slaveof redis-master 6379
  • 解释

    • masterauth 主节点的redis密码
    • slaveof 指定的从节点的地址和端口,这里使用容器的的名称作为地址。
  • 启动一个从结点slave

1
docker run -it --name redis-slave-6378 -p 6378:6378 -v  ~/redis/redis-6378.conf:/redis/redis-6378.conf --link redis-master:master -d redis:latest /bin/bash
  • 解释
    • –link 建立docker容器之间的通信
    • redis-master:master 中的master为redis-master容器中的别名
  • 启动redis,同上

配置第二个从节点

  • 编写/redis/redis-6377.conf,作为redis启动时加载的配置文件
1
2
3
4
5
6
7
8
port 6377
daemonize yes
logfile "6377.log"
dbfilename "dump-6377.rdb"
dir "/data"
requirepass redis6377recycle072829
masterauth redis6379recycle072829
slaveof redis-master 6379
  • 启动reids从节点
1
docker run -it --name redis-slave-6377 -p 6377:6377 -v  ~/redis/redis-6377.conf:/redis/redis-6377.conf --link redis-master:master -d redis:latest /bin/bash