zoukankan      html  css  js  c++  java
  • docker搭建redis主从集群

    准备条件:安装好docker 下载好redis的镜像 最新版本即可

    创建三个目录用于存放持久化文件

        mkdir /usr/local/docker/redis/redis-6379/data
        mkdir /usr/local/docker/redis/redis-6380/data
        mkdir /usr/local/docker/redis/redis-6381/data
    

    下载好一份redis的配置文件分别拷贝到对应的目录中去

        cp redis.conf /usr/local/docker/redis/redis-6379/
        cp redis.conf /usr/local/docker/redis/redis-6380/
        cp redis.conf /usr/local/docker/redis/redis-6381/
    

    修改主从的配置文件 master配置文件:

        bind 0.0.0.0
        dir ./data
        appendonly yes
        requirepass 123456 #设置连接密码 集群安全认证
    
    	从节点要新增一个slaveof配置 以及master节点的ip:
    
        bind 0.0.0.0
        dir ./data
        appendonly yes
        slaveof  172.18.0.2 6379
        masterauth 123456
    

    创建一个网络 redis集群将会全部放在这个网络中去

    	docker network create --subnet=172.18.0.0/16 redis-ms
    

    将所有redis的docker内部ip固定来启动 同时挂载外部的redis.conf

    	docker run -p 6379:6379 --name redis-master  --net redis-ms --ip 172.18.0.2 -v /usr/local/docker/redis/redis-6379/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/redis-6379/data:/data -d redis redis-server /etc/redis/redis.conf
    
    	docker run -p 6380:6379 --name redis-slave1 --net redis-ms --ip 172.18.0.3 -v /usr/local/docker/redis/redis-6380/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/redis-6380/data:/data -d redis redis-server /etc/redis/redis.conf  
    
    	docker run -p 6381:6379 --name redis-slave2 --net redis-ms --ip 172.18.0.4 -v /usr/local/docker/redis/redis-6381/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/redis-6381/data:/data -d redis redis-server /etc/redis/redis.conf  
    

    分别连接三个redis进行主从同步测试

    [root@localhost ~]# redis-cli -p 6379 -a 123456
    127.0.0.1:6381> set key1 value1
    "value1"
    [root@localhost ~]# redis-cli -p 6381
    127.0.0.1:6381> get key1
    "value1"
    [root@localhost ~]# redis-cli -p 6380
    127.0.0.1:6381> get key1
    "value1"
    

    可以观察到同步完成

    进行主从压测

    docker exec -it redis-master redis-benchmark docker exec -it redis-master redis-benchmark 
    
  • 相关阅读:
    启动nginx出错:open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
    linux vsftpd 550 create directory operation failed解决方法
    如何配置vsftpd
    配置<welcome-file>直接访问请求
    搭建solr集群的时候出现 ./zkcli.sh:行13: unzip: 未找到命令
    使用redis集群中遇到的错误
    存储过程
    查询
    sqlHelper
    一款批量修改AE模板的小工具
  • 原文地址:https://www.cnblogs.com/blackmlik/p/14229982.html
Copyright © 2011-2022 走看看