美文网首页
用docker安装官方redis和主从配置

用docker安装官方redis和主从配置

作者: szgl_lucifer | 来源:发表于2018-11-05 19:52 被阅读47次

    1:拉取redis官方镜像

    docker pull redis:3.2

    2:查看拉取的镜像

    docker images

    3:因为我拉取的是redis3.2版本,所以需要在redis官网下载redis3.2版本的redis.conf文件

    https://github.com/antirez/redis/releases/tag/3.2.11 

    现在本地修改redis.conf文件

    想要远程连接,首先把绑定到本地地址的配置注释掉

    保护模式关掉 

    设置登录密码

    4:把修改好的redis.conf放到建立的目录下:

    我在根目录下的docker/redis下放置redis.conf文件,然后在这个路径下运行run命令。

    5:运行镜像生成容器

    docker run -p 6379:6379 --name myredis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes

    --name myredis : 指定容器名称,这个最好加上,不然在看docker进程的时候会很尴尬。

    -p 6699:6379 : 指定端口映射,默认redis启动的是6379,至于外部端口不冲突就行。

    -v $PWD/redis.conf:/etc/redis/redis.conf : 将主机中当前目录下的redis.conf配置文件映射。

    -v $PWD/data:/data -d redis:3.2 : 将主机中当前目录下的data挂载到容器的/data

    --redis-server --appendonly yes :在容器执行redis-server启动命令,并打开redis持久化配置

    6:运行好后,查看容器是否在运行 docker ps -a

    7:得到容器id,进入redis客户端。

    docker exec -it 9f75b03abe0d bash

    redis-cli

    能进入说明配置没有问题。

    8:远程用redis工具链接

    配置ip地址、端口号、密码,然后可以正常链接。

    9:主从配置

    在另一台虚拟机上安装一个redis,配置文件redis.conf内容修改:

    slaveof  192.168.155.56  6379  

    192.168.155.56 是我前一个redis的地址

    启动redis镜像生成容器:

    docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes

    这样,我在192.168.155.56,192.168.155.55 都启动了redis。 55是56的备份机  56是Master节点  55是Slaver节点

    当往56上写数据的时候,会自动同步给55

    10:主从切换

    https://github.com/antirez/redis/releases/tag/3.2.11 把sentinel.conf配置文件下来,修改内面的内容:

    sentinel monitor mymaster 192.168.155.56 6379 1

    我把最后一个值设置为1,测试使用。(一般会设置为2) 这个值表示当有1台机器监测到56redis当掉的话,就启动55当master

    启动镜像

    docker run -p 26379:26379 --name sentinel -v /docker/redis/sentinel.conf:/etc/redis/sentinel.conf -v /docker/redis/data:/data -d redis:3.2 redis-sentinel /etc/redis/sentinel.conf --appendonly yes --slave-read-only yes

    把56机器上的redis停掉,看下55机器的日志

    docker logs -f sentinel

    55变成master,56变成slave

    11:工程中application.yml的修改为

    # name of Redis server 哨兵监听的Redis server的名称

    spring.redis.sentinel.master=mymaster

    # comma-separated list of host:port pairs  哨兵的配置列表

    spring.redis.sentinel.nodes=192.168.155.56:26379,192.168.155.55:26379,192.168.155.45:26379

    这样写就可以自动切换redis节点了。

    相关文章

      网友评论

          本文标题:用docker安装官方redis和主从配置

          本文链接:https://www.haomeiwen.com/subject/krysxqtx.html