搭建Redis主从集群

  使用一台云服务器搭建Redis主从集群,实现读写分离,主节点负责写,从节点负责读。在本次搭建中,开启多个端口模拟多个实例运行,端口7001模拟主节点,7002模拟从节点。

1.环境准备 开放端口, 关闭防火墙(!!!)

在所有工作之前,一定要先开放端口,并且关闭端口的防火墙,不然主从之间无法完成同步。
(1)开放端口

我在这里是直接进入云服务器管理界面,直接批量添加端口。(可以看我前一篇文章,里面有提到怎么添加开放端口Jedis连接报错 | JedisConnectionException: Failed to connect to any host resolved for DNS name.【已解决】

(2)关闭防火墙
命令行中输入以下,直接关闭防火墙

systemctl stop firewalld

2. 准备实例和配置

(1)进入/tmp/目录,创建两个文件夹 7001,7002,

mkdir 7001 7002

(2)把redis.conf 配置文件分别copy到两个目录下,修改以下的配置信息并保存。

replica-announce-ip x.x.x.x  # 为每个实例添加一个声明ip
bind  0.0.0.0
port 7001 # 7001目录下是7001,7002目录下是7002
daemonize yes #用来指定redis是否要用守护进程的方式启动,默认为no
requirepass 123456  #本地redis密码
masterauth  123456 #主节点redis密码 注意:主节点也要配置
protected-mode no
dir /tmp/7001/  #  设置数据保存的目录
appendonly no  # 关闭aof

3. 启动多个实例,并建立主从关系

(1)在tmp目录下,启动两个实例的服务,并连接客户端

[root@VM-16-7-centos tmp]# redis-server 7001/redis.conf
[root@VM-16-7-centos tmp]# redis-cli -p 7001
127.0.0.1:7001> auth 123456
OK
[root@VM-16-7-centos tmp]# redis-server 7002/redis.conf
[root@VM-16-7-centos tmp]# redis-cli -p 7002
127.0.0.1:7002> auth 123456
OK

(2)设置7001为主节点,7002为从节点。分别在两个实例下查看info replication信息。

127.0.0.1:7002> slaveof 43.143.246.25 7001
OK

在7001下查看信息

127.0.0.1:7001> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=43.143.246.25,port=7002,state=online,offset=14,lag=0
master_failover_state:no-failover
master_replid:a360f3e31b00bc6f68f01e4307d5472c0dd9e847
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:14
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:14

在7002下查看信息

127.0.0.1:7002> info replication
# Replication
role:slave
master_host:43.143.246.25
master_port:7001
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_read_repl_offset:0
slave_repl_offset:0
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:a360f3e31b00bc6f68f01e4307d5472c0dd9e847
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0

可以看出来,7002的role是slave,7001的role是master。主从关系建立成功!

4. 测试读写分离 从节点只能读不允许写

在这里插入图片描述
可以看出来,在从节点下,写操作是不被允许的

Redis主从集群的搭建过程大概就是这样了,有什么问题欢迎一起交流!^ _ ^

猜你喜欢

转载自blog.csdn.net/Dartao/article/details/128277025