1. 主从配置

主从配置:在多个redis实例建立起主从关系,当主redis中的数据发生变化,从redis中的数据也会同步变化。

  • 通过主从配置可以实现redis数据的备份(从redis就是对主redis的备份),保证数据的安全性;

  • 通过主从配置还可以实现redis的读写分离

    • 从下图可以看出一个redis负责读,其它redis负责写,读写分离可以更加提高效率不过一般redis都已经满足我们的需求了
  • 读写结构
    在这里插入图片描述

  • 主从结构

在这里插入图片描述

要区分读写分离和主从配置

  • 读写分离:表示一个Redis只需要写,其它只负责读,它们是分开工作的,解决高并发
  • 主从配置:表示一个Redis即负责读又负责写,而其它负责备份,提高可用性

主从配置

  • 配置文件结构
    在这里插入图片描述

  • 启动三个redis实例

    ## 1.在redis-6.2.7 目录下创建msconf文件夹
    # mkdir msconf
    
    ## 小知识:使用该命令查看配置文件 并过滤掉#(注释的内容)和过滤空格
    # cat redis-6380.conf |grep -v "#" | grep -v "^$"
    
    ## 2.使用查看命令去除配置文件中注释的内容和空格并拷贝到msconf文件夹下名字为redis-master.conf
    # cat redis-6380.conf |grep -v "#" | grep -v "^$" > msconf/redis-master.conf
    
    ## 3.修改 redis-master.conf(6381) 端口及远程访问设置和持久化策略保存文件等等
    # vim redis-master.conf
    

    在这里插入图片描述

## 在redis-master.conf 拷贝两份分别为:redis-slave1.conf(6382) redis-slave2.conf(6383)
## 使用下面命令可以把redis-master.conf文件夹中的所有6381切换为6382并保存到redis-slave1.conf
[root@localhost msconf]# sed 's/6381/6382/g' redis-master.conf > redis-slave1.conf
[root@localhost msconf]# sed 's/6381/6383/g' redis-master.conf > redis-slave2.conf

##修改redis-slave1.conf redis-slave2.conf 设置“跟从”----127.0.0.1 6381(可以理解为从库指定主库)
[root@localhost msconf]# vim redis-slave1.conf
[root@localhost msconf]# vim redis-slave2.conf
#分别打开对应文件添加主库的ip地址和端口 如果有密码则设置密码(需要注意我这里密码是123456和直接6380里面不一样)
slaveof 127.0.0.1 6381
masterauth 123456

在这里插入图片描述

## 启动三个redis实例
[root@localhost msconf]# redis-server redis-master.conf &
[root@localhost msconf]# redis-server redis-slave1.conf &
[root@localhost msconf]# redis-server redis-slave2.conf &

在启动从库时候可以看到控制台打印的信息已经连接了对应端口的主库

在这里插入图片描述

测试
## 我们在主库保存了一个键值对k3 值为666
[root@localhost msconf]# redis-cli -p 6381 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6381> set k3  666
OK
## 切换到从库进行操作可以获取到主库保存的k3证明我们的主从配置成功
[root@localhost msconf]# redis-cli -p 6382 -a 123.com
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6382> get k3
"666"

Redis主从配置到此结束!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐