发布时间:2023-03-15 文章分类:电脑基础 投稿人:樱花 字号: 默认 | | 超大 打印

文章目录

  • 1.概述
  • 2.主从优点
    • 2.1 一主多从搭建
    • 2.2 新建目录
    • 2.3 复制目录
    • 2.4 修改从的配置文件
    • 2.5 启动三个redis实例
    • 2.6 **查看启动状态**
    • 2.7 测试

1.概述

Redis支持集群功能。为了保证单一节点可用性,redis支持主从复制功能。每个节点有N个复制品(replica),其中一个复制品是主(master),另外N-1个复制品是从(Slave),也就是说Redis支持一主多从。

​ 一个主可有多个从,而一个从又可以看成主,它还可以有多个从。

2.主从优点

增加单一节点的健壮性,从而提升整个集群的稳定性。(Redis中当超过1/2节点不可用时,整个集群不可用)

​ 从节点可以对主节点数据备份,提升容灾能力。

​ 读写分离。在redis主从中,主节点一般用作写(具备读的能力),从节点只能读,利用这个特性实现读写分离,写用主,读用从。

2.1 一主多从搭建

在已经搭建的单机版redis基础上进行操作
并且关闭redis单机版
进入redis中 cd /usr/local/redis/bin/

./redis-cli shutdown

2.2 新建目录

mkdir /usr/local/replica

2.3 复制目录

之前安装的redis单机版中bin目录复制三份,分别叫做:master、slave1、slave2

cp -r /usr/local/redis/bin /usr/local/replica/master
cp -r /usr/local/redis/bin /usr/local/replica/slave1
cp -r /usr/local/redis/bin /usr/local/replica/slave2

2.4 修改从的配置文件

修改2个从的redis.conf,指定主节点ip和端口。并修改自身端口号防止和其他redis冲突。
修改slave1节点

vim /usr/local/replica/slave1/redis.conf

指定主节点ip和端口(我这里连接是192.168.137.134)

replicaof 192.168.137.134 6379

修改slave1节点端口,修改完之后保存退出

port 6380

修改slave2节点

vim /usr/local/replica/slave2/redis.conf

指定主节点ip和端口(我这里连接是192.168.137.134)

replicaof 192.168.137.134 6379

修改slave2节点端口,修改完之后保存退出

port 6381

2.5 启动三个redis实例

注意:一定要关闭单机的redis,否则端口冲突。

cd /usr/local/replica
vim startup.sh //创建一个启动文件,方便启动

在文件中添加下面内容

cd /usr/local/replica/master/
./redis-server redis.conf
  cd /usr/local/replica/slave1
./redis-server redis.conf
  cd /usr/local/replica/slave2
./redis-server redis.conf

赋予权限

chmod a+x startup.sh

开启

./startup.sh

2.6 查看启动状态

ps aux|grep redis

可以看到启动了三个redis,这里就不进行图片展示了

2.7 测试

不进行图片展示
思路:由于我们创建的是主从结构,读写分离模式,所以我们进入主节点的命令行界面,进行set数据,然后get数据,查看是否可以查看set进去的数据,退出主节点,进入子节点命令行界面,进行get数据查看数据是否同步,然后进行set数据,进行观察

cd /usr/local/replica/master/    //进入主节点
./redis-cli  //进入主节点命令行界面
set name zhangsan   //set 数据
get name  //get数据
Ctrl+C  /退出
cd /usr/local/replica/slave1   //进入从节点
./redis-cli -p 6380   //进入从节点命令行界面   需要注意的是后边需要加-p 6380  (6380为从节点端口号)
get name	//get数据
set name wangwu		//set 数据

到这里,主从结构就结束了!