Docker 安装 Redis
文章目录
Docker 安装 Redis
安装 Docker
镜像加速
下载镜像
$ docker search redis # 查询镜像
$ docker pull redis # 拉取官方的镜像
$ docker images # 查看一下是否成功
修改 Redis 配置
-
下载redis.conf,文件 从官网下载。
$ wget http://download.redis.io/redis-stable/redis.conf
-
修改配置
- port 6379 # 端口默认为 6379
- bind 127.0.0.1 #注释掉这部分,用来限制 redis 只能本地访问或者设置为 0.0.0.0
- protected-mode no #默认 yes 表示开启保护模式
- daemonize no # 或者注释掉 docker 运行不要设置后台运行与
-d
有冲突会闪退 - dir “/data” #输入本地redis数据库存放文件夹
- dbfilename #默认 dump.rdb 修改 dump-端口.rdb
创建并操作容器
$ docker run -itd -p 6379:6379 --name redis-master -v $PWD/redis-6379.conf:/data/redis-6379.conf -v $PWD:/data redis redis-server /data/redis-6379.conf
$ docker exec -it redis-master redis-cli -p 6379
主从模式
添加配置文件
$ cp redis-6379.conf redis-6380.conf
$ vi redis-6380.conf # 修改端口以及dbfilename
创建容器
$ docker run -itd -p 6380:6380 --name redis-slave-0 -v $PWD/redis-6380.conf:/data/redis-6380.conf -v $PWD:/data redis redis-server /data/redis-6380.conf
查看主 Redis IP 信息
$ docker inspect redis-master | grep IPAddress
配置主从关系
$ docker exec -it redis-slave-0 redis-cli -p 6379
$ slaveof 主节点的ip(host) 主节点的端口(port) # slaveof 172.17.0.2 6379
主从模式支持:一主一从结构 一主多从结构 树状主从结构
Redis Sentinel 的高可用性-哨兵模式
配置文件
# redis-sentinel-26379.conf
port 26379 # Sentinel节点的端口
daemonize yes # 守护进程
logfile "26379.log" # 日志文件
dir /data # 工作目录
sentinel monitor mymaster 172.17.0.2 6379 2
sentinel down-after-milliseconds mymaster 30000 # 单位为毫秒
sentinel parallel-syncs mymaster 1 # parallel-syncs 就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数
sentinel failover-timeout mymaster 180000 # 故障转移超时时间
#sentinel auth-pass <master-name> <password> # Sentinel 监控主节点的密码
#sentinel notification-script <master-name> <script-path> # 故障转移触发
#sentinel client-reconfig-script <master-name> <script-path> # 故障转移结束后触发
-
Sentinel节点的默认端口是26379。
-
sentinel monitor mymaster 172.17.0.2 6379 2 配置代表 sentinel-1 节点需要监控172.17.0.2:6379 这个主节点,2 代表判断主节点失败至少需要 2 个Sentinel节点同意,mymaster是主节点的别名
详细的参数说明推荐参考 Redis开发与运维 的第9章 9.2.4 配置优化
创建 sentinel 容器
$ docker run -itd -p 26379:26379 --name redis-sentinel-1 -v $PWD/redis-sentinel-26379.conf:/data/redis-sentinel-26379.conf -v $PWD:/data redis redis-sentinel /data/redis-sentinel-26379.conf
配置多个 redis-sentinel 依次启动。配置参数只是 port logfile 需要修改其他保持不变即可
$ docker run -itd -p 26380:26380 --name redis-sentinel-2 -v $PWD/redis-sentinel-26380.conf:/data/redis-sentinel-26380.conf -v $PWD:/data redis redis-sentinel /data/redis-sentinel-26380.conf
查看状态
$ docker exec -it redis-sentinel-1 redis-cli -p 26380 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=172.17.0.2:6379,slaves=2,sentinels=3