前言

  • 1. 在三台服务器上分别创建redis配置文件
  • 2. 打开三台服务器的防火墙
  • 3.启动redis 服务
  • 4.检验是否完成主从同步
  • 5.检验读写分离
  • 总结



redis 集群部署 一主一从 redis主从集群搭建_分布式


本篇博文,将示例搭建redis 一主两从集群。

在搭建之前,了解一下是怎么实现主从之间数据交互的: 启动一台slave 的时候,他会发送一个psync命令给master .

如果是这个slave第一次连接到master,他会触发一个全量复制。master就会启动一个线程,生成RDB快照,还会把新的写请求都缓存在内存中,RDB文件生成后,master会将这个RDB发送给slave的,slave拿到之后做的第一件事情就是写进本地的磁盘,然后加载进内存,然后master会把内存里面缓存的那些新命名都发给slave。

下面逐步介绍搭建主从同步

默认你在三台服务器上都已经安装了redis。(我是在一台上搭建,然后复制了两台。)

本次搭建主从同步集群使用了三台Centos系统服务器。

角色

IP地址

端口

master

192.168.56.85

6379

slave-1

192.168.56.86

6379

slave-2

192.168.56.87

6379

1. 在三台服务器上分别创建redis配置文件

由于redis的命令都在redis文件夹的src目录下,所以我们需要在src目录下创建redis配置文件,这样会比较方便。

可以直接使用vi 命令,来创建并编辑。

主服务器上,src目录下 : vi master.conf

# 配置别的也可以访问.
bind 0.0.0.0
# 配置守护线程
daemonize yes
# 端口,默认6379
port 6379
# 日志输出文件
logfile "6379.log"

slave-1服务器上,src目录下 : vi slave-1.conf

bind 0.0.0.0
# 配置守护进程
daemonize yes
# 端口,默认6379
port 6379
# 日志输出文件
logfile "slave-1.log"
# 从属于主redis
slaveof 192.168.56.85 6379

slave-2服务器上,src目录下 : vi slave-2.conf

bind 0.0.0.0
# 配置守护进程
daemonize yes
# 端口,默认6379
port 6379
# 日志输出文件
logfile "slave-2.log"
# 从属于主redis
slaveof 192.168.56.85 6379
2. 打开三台服务器的防火墙

由于我们是在三台服务器上搭建一主两从,所以需要关闭防火墙。

Centos 查看防火墙状态的命令是

systemctl status firewalld.service

Centos关闭防火墙的命令是

systemctl stop firewalld.service

开启防火墙的命令是

systemctl start firewalld.service
3.启动redis 服务

redis 集群部署 一主一从 redis主从集群搭建_分布式_02


在主服务器上,打开redis服务

./redis-server master.conf

在slave-1服务器上打开redis服务

./redis-server slave-1.conf

在slave-2服务器上打开redis服务

./redis-server slave-2.conf
4.检验是否完成主从同步

可以在src目录下使用过./redis-cli 命令,以客户端的身份连接到redis服务器上。通过 info replication命令来查看主从配置信息。

redis 集群部署 一主一从 redis主从集群搭建_redis_03


同样在从redis服务器上分别检查

redis 集群部署 一主一从 redis主从集群搭建_redis 集群部署 一主一从_04


redis 集群部署 一主一从 redis主从集群搭建_centos_05

5.检验读写分离

redis 主从同步搭建完毕之后,会默认使用读写分离,即主redis读,从redis写,我们在主redis上 set 一个key

redis 集群部署 一主一从 redis主从集群搭建_centos_06


可以去从redis上get一下试试

redis 集群部署 一主一从 redis主从集群搭建_redis 集群部署 一主一从_07


可以看到,从redis 无法写,只能读。 并且可以读到主redis 刚才set的数据。

总结

本篇是redis 搭建集群的入门篇,只是实现了最基础的一主两从,在实战中,可能要多主多从 ,并且要配置哨兵。哨兵可以实时监控master是否宕机,若宕机,可以通过投票机制选举出来一个slave来当新的master。

当然,哨兵也是需要配置多个的。