本人電腦爲mac,直接下載docker dmg文件redis
docker search redis docker pull redis:latest docker images
mkdir onlineinternship/redis cd redis
redis配置文件docker
bind 127.0.0.1 #註釋掉這部分,這是限制redis只能本地訪問 protected-mode no #默認yes,開啓保護模式,限制爲本地訪問 daemonize no#默認no,改成yes意爲以守護進程方式啓動,可後臺運行,除非kill進程,改成yes會使配置文件方式啓動redis失敗 databases 16 #數據庫個數(可選),我修改了這個只是查看是否生效。。 dir ./ #輸入本地redis數據庫存放文件夾(可選) appendonly yes #redis持久化(可選) logfile "access.log" requirepass 123456(設置成你本身的密碼)
protected-mode 是在沒有顯示定義 bind 地址(即監聽全網斷),又沒有設置密碼 requirepass
時,protected-mode 只容許本地迴環 127.0.0.1 訪問。
也就是說當開啓了 protected-mode 時,若是你既沒有顯示的定義了 bind 監聽的地址,同時又沒有設置 auth 密碼。那你只能經過 127.0.0.1 來訪問 redis 服務。shell
docker run \ -p 6379:6379 --name myredis \ -v/Users/bochenghu/onlineinternship/redis/redis.conf:/etc/redis/redis.conf \ -v /Users/bochenghu/onlineinternship/redis/data:/data:rw \ --privileged=true -d redis redis-server /etc/redis/redis.conf \ --appendonly yes
參數解釋說明:數據庫
--appendonly yes 開啓redis 持久化安全
# 查看活躍的容器 docker ps # 若是沒有 myredis 說明啓動失敗 查看錯誤日誌 docker logs myredis # 查看 myredis 的 ip 掛載 端口映射等信息 docker inspect myredis # 查看 myredis 的端口映射 docker port myredis
# redis-cli 訪問 docker run -it --link myredis:redis --rm redis redis-cli -h redis -p 6379 # -it 交互的虛擬終端 # --rm 退出是刪除此容器
或者使用 shell 登陸容器內操做bash
docker exec -it myredis bash redis-cli
配置完成app
新建一個redis-slave容器(同新建redis)ui
docker run -p 6380:6380 --name redis-slave -v /Users/bochenghu/onlineinternship/redisSlave/redis.conf:/etc/redis/redis.conf -v /Users/bochenghu/onlineinternship/redisSlave/data:/data:rw --privileged=true -d redis redis-server /etc/redis/redis.conf --appendonly yes
查看redis master的內部IPspa
修改 redis-slave 的配置文件 # 主地址 replicaof 172.17.0.2 6379 # 主認證 masterauth hubocheng
重啓redis-slaverest
docker restart redis-slave
登陸 redis master 使用 info 命令查看從的狀態
若是配置不成功記得檢查 redis master 的 bind 和 protected-mode 的設置,看下有沒有監聽內網地址,不然 redis-slave 沒辦法經過 redis master 的地址作數據同步登錄redis master後使用info,顯示主從關聯成功