docker 搭建 redis 主从复制

redis是k-v型 nosql 数据库,支持字符串(string)、列表(list)、集合(set)、散列(hash)、有序集合(zset:形如member:score的散列集合,其中member为成员,score为成员得分,必须为float型数据)。

综合使用redis的以上5种数据类型,可以将redis应用于各种场景,比如点赞、投票网站、消息队列、分布式锁(使用setnx指令,该指令只有在key不存在的时候,才会执行写入操作)、文件分发、日志记录等等。

redis支持主从配置(拓展读性能,主机负责读取、写入,从机只负责读取,主机自动向从机以rdb快照形式同步数据)、持久化配置(支持rdb快照持久化、aof持久化,旧版redis不支持同时配置两种持久化方式,新版的貌似可以)、发布订阅(pub、sub)、事务、流水线pipeline(减少客户端和服务端往返连接次数从而提高性能)、客户端分片(拓展写性能)等。

redis 集群包含多种架构方式:

  • 主从复制
  • 哨兵机制
  • Cluster集群模式(服务端)
  • sharding集群(客户端sharding)
  • 中间件代理

接下来使用 docker 搭建 redis 主从复制架构:

  1. 先拉取 redis 镜像
docker pull redis

在这里插入图片描述
查看 redis 镜像

docker images

REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
ubuntu                                  latest              775349758637        2 weeks ago         64.19 MB
tutorial-01                             latest              6c168117f962        3 weeks ago         139.5 MB
zookeeper                               latest              a873528df41f        4 months ago        225.1 MB
redis                                   latest              d3e3588af517        6 months ago        95.04 MB
elasticsearch                           5                   34b57bbab755        10 months ago       485.7 MB
  1. 搭建 redis 主从复制架构 redis_master, redis_slave
docker run --name redis_master -d -p 6379:6379 redis
docker run --name redis_slave -d -p 7000:6379 redis

docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
c251d6405a54        redis               "docker-entrypoint.sh"   3 weeks ago         Up 23 minutes       0.0.0.0:7000->6379/tcp   redis_slave
cb662ace3f44        redis               "docker-entrypoint.sh"   3 weeks ago         Up 31 minutes       0.0.0.0:6379->6379/tcp   redis_master
  1. 配置 redis 主从架构

使用如下命令查看容器内网的ip地址等信息

docker inspect redis_master

在这里插入图片描述
可以看到 redis_master 内网ip地址为 172.17.0.2

进入 redis_slave 容器中

docker exec -it redis_slave bash

redis-cli
127.0.0.1:6379 > slaveof 173.17.0.2 6379
OK

查看主从信息,发现 redis_slave 的 role 变成了 slave

info replication 

在这里插入图片描述

测试一下

docker exec -it redis_master bash

redis-cli
127.0.0.1:6379> set test hello

另起一个终端

docker exec -it redis_slave bash

redis-cli
127.0.0.1:6379> get test
hello

到此,使用docker搭建 redis 主从复制架构就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值