Linux中使用redis(二)redis主从复制 搭建

9 篇文章 0 订阅

redis主从复制 搭建

主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制 Master(主节点)以写为主,Slave(从节点)以读为主

1、主从复制能解决什么问题:

单点故障、高并发redis压力大, 读写分离,性能扩展、容灾快速恢复

2、 主从复制的原理

当从服务器连接上主服务器之后,从服务器向主服务器发送进行数据同步的消息。 主服务器接收到从服务器发送过来的同步消息,会把主服务器的数据进行持久化,会把数据存放到rdb文件中,之后把rdb文件发送给从服务器,从服务器拿到rdb文件进行读取 每次主服务器进行写操作之后,会和从服务器进行数据同步。

3、搭建流程(一主多从)

1、创建三个redis-server服务实例

[root@localhost utils]# ./install_server.sh 6379/6380/6381/..

./install_server.sh   指定一个端口号为6379   作为主节点

./install_server.sh   指定一个端口号为6380   从节点

./install_server.sh   指定一个端口号为6381   从节点

2、 修改主机配置文件 

基本不需要修改

[root@bogon src]# vim /etc/redis/6379.conf

​

1)bind <ip-address>

2)port <port-number>

3)daemonize yes

4)pidfile /var/run/redis/redis-server-6379.pid

5)logfile /var/log/redis/redis-server-6379.log

6)appendonly yes

其中 <ip-address> 是服务器 IP 地址,<port-number> 是 Redis 监听端口。

3、 修改从机配置文件

[root@bogon src]# vim /etc/redis/6380.conf

[root@bogon src]# vim /etc/redis/6381.conf

​

1)bind <ip-address>

2)port <port-number>

3)daemonize yes

4)dbfilename 修改成自己的路径

5)pidfile /var/run/redis/redis-server.pid 修改成自己的路径

6)logfile /var/log/redis/redis-server.log 修改成自己的路径

7)slaveof <master-ip> <master-port>

8)logfile 修改成自己的路径

9)将appendonly 设置为  no

其中 <ip-address> 是服务器 IP 地址

<port-number> 是 Redis 监听端口

<master-ip> 和 <master-port> 是 Redis 主服务器的 IP 地址和端口。

4、启动三个实例

[root@bogon utils]# systemctl start redis_6379.service

[root@bogon utils]# systemctl start redis_6380.service

[root@bogon utils]# systemctl start redis_6381.service

确认 Redis 服务器已成功启动:

[root@bogon utils]# systemctl status redis_6379.service

[root@bogon utils]# systemctl status redis_6380.service

[root@bogon utils]# systemctl status redis_6381.service

5、启动三个客户端

[root@bogon src]# cd /redis/redis-6.0.8/src/

[root@bogon src]# ./redis-cli -p 6379

127.0.0.1:6379>

[root@bogon src]# cd /redis/redis-6.0.8/src/

[root@bogon src]# ./redis-cli -p 6380

127.0.0.1:6380>
[root@bogon src]# cd /redis/redis-6.0.8/src/

[root@bogon src]# ./redis-cli -p 6381

127.0.0.1:6381>

6、使用命令的方式设置主从节点

在从节点的客户端中执行如下命令即可设置当前节点为从节点,连接主节点的地址和端口号:

[root@bogon ~]# cd /redis/redis-6.0.8/src/

[root@bogon src]# ./redis-cli -p 6381

127.0.0.1:6381> REPLICAOF 127.0.0.1 6379  //当前从节点连接主节点

OK Already connected to specified master

127.0.0.1:6381>
在从节点的客户端中执行如下命令即可设置当前节点为从节点,连接主节点的地址和端口号:

REPLICAOF 127.0.0.1 6379     或者 slaveof 127.0.0.1 6379

7、如果从节点突然挂掉了,可以重新恢复

redis-server /etc/redis/6380.conf   REPLICAOF 127.0.0.1 6379

8、如果主节点突然挂掉了,可以将从节点提升为主节点

在从节点的客户端连接中执行如下命令:
REPLICAOF  no  one  或者slaveof no  one   此时从节点变为主节点,其他从节点需要重新连接到新的主节点

9、查看当前redis实例的状态

在客户端中执行如下命令:
info  replication

9.1主从关系查看

[root@bogon src]# ./redis-cli -p 6379

127.0.0.1:6379> info replication

# Replication

role:master // 主节点

connected_slaves:2 //有两个从节点

slave0:ip=127.0.0.1,port=6380,state=online,offset=28,lag=0

slave1:ip=127.0.0.1,port=6381,state=online,offset=28,lag=0

master_replid:20b476af41e6dd90ddc5bd8f8b3165a25d8ce0fa

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:28

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:28

10、测试

主节点6379:

从6380和6381:从节点不能写只能读

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值