bind 启动redis_基于Docker的Redis集群实践

本文介绍了如何在Docker环境下搭建Redis的主从模式、哨兵模式和集群模式。首先,通过配置主从模式实现数据备份和读写分离。接着,引入哨兵系统自动监测和故障转移,确保高可用性。最后,构建Redis集群以实现水平扩容,每个节点仅存储部分数据,提高系统容量上限。整个过程中,详细展示了配置、启动和验证各个模式的步骤。
摘要由CSDN通过智能技术生成

单机版的Redis相信大家都比较熟悉了,这里介绍几种Redis的集群模式,并结合Docker来进行实践操作

准备工作

通过Docker下载最新的Redis镜像

# 获取redis镜像
docker pull redis

下载后续所需的相关配置文件

# 下载Redis配置文件
wget http://download.redis.io/redis-stable/redis.conf
# 下载Redis哨兵配置文件
wget http://download.redis.io/redis-stable/sentinel.conf

主从模式

众所周知,将数据放在一台服务器上风险巨大。为此Redis提供了Replication复制功能,可以将一台Redis服务器中的数据自动同步到其他多台Redis服务器中。在该模式下,存在两个角色:Master主数据库(主库)、Slave从数据库(从库)。主数据库可以进行读写操作,每次当主数据库发生变动即会自动同步至相应的从数据库中。故从数据库一般是只读的,不允许用户直接向其中写入数据。具体地,一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库,即一对多的关系。可以看到在主从模式下,一方面降低了数据丢失的风险,另一方面通过读写分离(主库写、从库读),提高了服务器的负载能力。下面我们搭个一主一从的Redis集群进行演示

配置主库

按下图建立主库所需的相关目录,并将Redis配置文件复制到 /Users/zgh/Docker/Redis/Redis-Master/Config 路径下。如下图所示

528d1095944f569ccaccbf6b2a5440b3.png

修改主库的Redis配置文件,修改如下

...
# 注释bind配置项
# bind 127.0.0.1

# 设为no, 关闭保护模式
protected-mode no

# 主库端口设为6379
port 6379

# 修改数据库数量, 用于验证配置文件是否生效
databases 10

# 设置工作目录
dir "/data"

# 设置Redis密码
requirepass 123456

# 设为no, 因为docker启动时会通过-d参数来让其实现后台运行
daemonize no
...

至此,就可以通过Docker来启动一个使用指定配置文件的Redis容器来作为主库了。命令如下所示

docker run 
 -v /Users/zgh/Docker/Redis/Redis-Master/Config/redis.conf:/etc/redis/redis.conf 
 -v /Users/zgh/Docker/Redis/Redis-Master/Data:/data 
 -d -p 6379:6379 
 --name Redis-Master 
 redis redis-server /etc/redis/redis.conf

命令选项说明如下

  • -v : 将宿主机的相关目录、文件挂载到容器中。具体地,冒号:前为宿主机目录,冒号:后为容器目录
  • -d : 指定容器后台运行
  • -p : 端口映射。将宿主机的端口映射到容器的端口。具体地,冒号:前为宿主机端口,冒号:后为容器端口
  • --name : 命名容器

从库配置

至此主库Redis—Master已经配置、启动完毕,现在让我们来配置一个从库。为了保证Redis从库能够自动同步主库中的数据,需要在从库的配置文件配置主库的IP、端口信息。这里,我们即可直接使用Docker分配Redis—Master容器的IP进行容器间通信,也可以通过宿主机IP(可通过ifconfig命令获取)来进行通信。这里我们选择前者,直接获取Docker分配给Redis—Master容器的IP

# 查看 Redis-Master 容器的详细信息
docker inspect Redis-Master

下图命令结果的IPAddress即为Redis-Master容器的IP——172.17.0.2

e56dc7e3fa120b78199296ea76957ec4.png

好了,知道了主库的IP信息。现在我们可以来配置从库了。按下图建立从库所需的相关目录,并将Redis配置文件复制到 /Users/zgh/Docker/Redis/Redis-Slave1/Config 路径下。如下图所示

4fd2c52051969c5dfdf65117a7ec7da2.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值