本文 Github/javamap 已收录,有Java程序员进阶技术知识地图以及我的系列文章,欢迎大家Star。
目录
0. 目标
1. 安装docker,运行docker
2. 拉取redis镜像文件
3. 准备好redis配置文件redis.conf
4. 启动redis实例
5. 配置主从复制集群
6. 测试主从复制效果
本地搭建三个redis实例(一主两备),实现效果:主实例插入数据备实例可以复制同步过去。
docker安装步骤省略,大家可以从官网下载并安装。
检查docker是否运行成功:
docker info出现回显表示运行成功,可以做下一步操作了。
执行以下命令默认拉取tag为latest的官方redis镜像
docker pull redis下载地址:
链接:https://pan.baidu.com/s/14tWHtk3mch3e3VlT9TYX1A 密码:q3uk
拷贝为3三份,如:redis01.conf, redis02.conf, redis03.conf
打开所有的配置文件,修改如下配置项:
注释只监听本地选项,可以远程连接。#bind 127.0.0.1
关闭保护模式 protected-mode no
打开AOF持久化开关 appendonly yes
对以上命令简单解释:
参数-p 6381:6379,6381表示宿主机端口,6379表示容器实例端口,意思是将容器实例端口映射到宿主机端口。
参数--name redis-server-01,给容器实例命名。
参数-v /your/path/redis/conf/redis01.conf:/etc/redis/redis.conf,冒号前是宿主机配置文件路径,冒号后是容器的配置文件路径,意思是将容器实例的配置路径映射到宿主机的路径。
参数-v /your/path/redis/data01:/data,如上面意思相同。
选项-d表示以后台形式运行实例。
参数redis-server /etc/redis/redis.conf表示执行redis-server命令, /etc/redis/redis.conf表示以该配置文件启动redis实例,注意配置文件必须为redis-server命令的第一个参数。
检查实例运行状态:
docker ps回显有三个redis实例即为正常。 查询实例1:redis-server-01 运行的内部ip
docker inspect redis-server-01通过回显可以看到:"IPAddress": "172.17.0.4" 我们将实例1规划为主,另外两个实例自然为备了,通过将主的ip和port配置在备的配置文件中即可实现主从复制的效果。
修改redis02.conf和redis03.conf配置文件,找到replicaof选项(redis5.0之前是slaveof),修改为:
replicaof 172.17.0.4 6379修改完毕,重启实例2和实例3:
docker restart redis-server-02 docker restart redis-server-03检查实例1的状态是否为主,并且挂载两个备实例:
docker exec -it redis-server-01 redis-cli 127.0.0.1:6379> info回显如下表示主从复制配置成功:
# Replication role:master connected_slaves:2 slave0:ip=172.17.0.3,port=6379,state=online,offset=84,lag=1 slave1:ip=172.17.0.2,port=6379,state=online,offset=84,lag=1连接redis实例1插入一条记录:
docker exec -it redis-server-01 redis-cli # 连接实例1 127.0.0.1:6379> set name ray # 插入一条数据 OK # 插入成功连接redis实例2和实例3查看是否复制成功:
docker exec -it redis-server-02 redis-cli # 连接实例2 127.0.0.1:6379> get name "ray" # 可以查到,表明从实例已经将主实例的数据同步过来了总结:搭建Redis主从复制实例需要有一点docker的基础,如果你对docker比较熟悉了,那搭建过程实在太容易了。没有docker基础,只要按照上面的命令逐个运行也可以100%成功哦。
下一篇雷架带大家手把手搭建Redis主从复制+哨兵模式,尽请期待
-- END --
日常求赞:你好技术人,先赞后看养成习惯,你的赞是我前进道路上的动力,对我非常重要。
加油技术人!
简介: 博主从华中科技大学硕士毕业,是一个对技术有追求,对生活有激情的程序员。几年间浪迹于多个一线互联网大厂,具有多年开发实战经验。
微信搜索公众号【爱笑的架构师】,我有技术和故事,等你来。
文章持续更新,在 Github/javamap 中可以看到我归档的系列文章,有面试经验和技术干货,欢迎Star。
爱笑的架构师 认证博客专家 Java 分布式架构 微服务 华中科技大学硕士毕业,曾浪迹于华为、百度等大厂,现在在一家大厂打工中……微信搜索公众号【爱笑的架构师】,关注这个对技术和生活有追求的打工人。