实现简单的 redis 主从拷贝

文件名 内容

Dockerfile

FROM redis
COPY redis.conf /etc/redis/redis.conf
RUN redis-server /etc/redis/redis.conf

docker-compose.yml

version: '2'
services:
    remaster:
##        image: redis
        build:
            context: .
            dockerfile: Dockerfile
        container_name: master
        ports:
          - "6379:6379"
        restart: always
        expose: 
            - 6379
##        command: /bin/bash -c "redis-server /etc/redis/redis.conf"
    slave6380:
        image: redis
        container_name: slave01
        ports:
          - "6380:6379"
        restart: always
        expose: 
            - 6379
        command: /bin/bash -c "sleep 2 && redis-server --port 6380 --slaveof remaster 6379"
        depends_on: 
          - remaster
    slave6381:
        image: redis
        container_name: slave02
        ports:
          - "6381:6379"
        restart: always
        expose: 
            - 6379
        command: /bin/bash -c "sleep 2 && redis-server --port 6381 --slaveof remaster 6379"
        depends_on: 
          - remaster
networks:
    backend:

redis.conf

daemonize yes
pidfile /var/run/redis.pid
port 6379
timeout 0
loglevel notice
logfile stdout
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only no
slave-priority 100
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60


↙↙↙阅读原文可查看相关链接,并与作者交流