资讯专栏INFORMATION COLUMN

(全栈学习实践)四、docker搭建redis主从实践

wall2flower / 649人阅读

摘要:前面容器重建后需要重新运行命令绑定关联,需要命令行下生效。直接同步成功,在查看关系均有对方信息。是否要守护进程这里是经过多次测试,发现容器重启,也会正常启动。哨兵的配置于此类似,略过。

前面mysql容器重建后需要重新运行 change master to 命令绑定关联,8.0需要命令行下生效。
redis首先想到用官方的,没想到进去各个基本shell命令无法使用,所以先弃了。这次由于官方没有提供基本的配置文件,解压redis-5.0.5.tar.gz复制 主配置redis.conf、哨兵配置sentinel.conf 到当前目录,如:/root/tmp/dk/redis。

1、制作配置文件

搜索修改

# master服务器 redis.conf:
- # requirepass foobared
+ requirepass 123456
- dir ./             # 持久化数据目录
+ dir /data
- appendonly no      # 开启aof
+ appendonly yes
- bind 127.0.0.1     # 允许外网ip访问
+ bind 0.0.0.0

// 从服务器:主+额外 redis.conf:
// remote_host:自己的内网、外网地址
- # replicaof    
+ replicaof remote_host 6379
- # masterauth 
+ masterauth 123456
2、启动容器
# 创建容器运行
[]:~/tmp/dk/redis# docker run --name rm 
    -p 6379:6379 --restart=always -v 
    /root/tmp/dk/redis/data:/data -v 
    /root/tmp/dk/redis/redis.conf:/etc/redis/redis.conf 
    -d cffycls/redis5:1.6 redis-server /etc/redis/redis.conf
[]:~/tmp/dk/redis# docker run --name rs 
    -p 6381:6379 --restart=always -v 
    /root/tmp/dk/redis_slave/data:/data -v 
    /root/tmp/dk/redis_slave/redis.conf:/etc/redis/redis.conf 
    -d cffycls/redis5:1.6 redis-server /etc/redis/redis.conf

镜像是redis5.0.5编译的,直接启动后就是主从同步的,不需要向mysql一样进行配置(这里起始数据不一致时:修改到当前最终配置,重启即同步完好)。直接同步成功,在master、slave查看关系 info replication均有对方信息。

3、其他情况 a.百度replicaof

"master-slave 架构的描述改为 master-replica,SLAVEOF 提供别名 REPLICAOF,所以仍然可以使用 SLAVEOF"。

b.是否要守护进程

这里是经过多次测试,发现:容器重启,redis也会正常启动。daemonize no 注意保持是 no,否则会报错:
Error response from daemon: Container xx is restarting, wait until the container is running
可知容器内的守护进程与docker本身有冲突,保持默认的 daemonize no 正常,不要先入为主的修改参数,考虑与主机安装的不同。

c.bind地址是否要修改

已经设置过密码,所以protected-mode保持默认值。

protected-mode yes #关闭保护模式,使外网能访问

protected-mode no #开启protected-mode保护模式,需配置bind ip或者设置访问密码

这里是经过多次修改配置重启测试,得知master-slave:127.0.0.1-127.0.0.1可以访问,但单主从关系没有建立;0.0.0.0-127.0.0.1正常,反正是推荐0.0.0.0-0.0.0.0。

同mysql一样,需要重启加载配置的,使用 docker restart rm rs 重启方式。哨兵的配置于此类似,略过。
这里基于之前redis的Dockerfile修改完善,推送到 cffycls/redis5:1.6 官方公共云上了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28108.html

相关文章

  • 全栈学习实践docker搭建mysql主从实践

    摘要:上需要主从服务器端配合完成初始化同步用户主服务器端手动同步初始数据添加测试数据,适合从一台拓展至多台服务器的情况。 目前已完成:php7及扩展、redis5的Dockerfile测试版编写,稍许完善后同步上传到github,(记下这里memcached还没有剥离安装)。今天数据库,编程的一个重要原则是不要重复造轮子,php因为需要很多自定义插件、所以单独编译镜像,其实其他包括redis...

    instein 评论0 收藏0
  • 学习实践)五、docker搭建redis主从实践

    摘要:前面容器重建后需要重新运行命令绑定关联,需要命令行下生效。直接同步成功,在查看关系均有对方信息。是否要守护进程这里是经过多次测试,发现容器重启,也会正常启动。哨兵的配置于此类似,略过。 前面mysql容器重建后需要重新运行 change master to 命令绑定关联,8.0需要命令行下生效。redis首先想到用官方的,没想到进去各个基本shell命令无法使用,所以先弃了。这次由于官...

    Pocher 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    BicycleWarrior 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<