1. Linux中搭建Redis

  • 第一步:安装依赖
yum install gcc-c++
  • 第二步:创建文件夹
mkdir /opt/redis -p
  • 第三步:进入创建的文件夹
cd  /opt/reids
  • 第四步: 上传压缩包
rz指令上传压缩包
  • 第五步:解压
tar -zxvf redis-3.2.9.tar.gz
  • 第六步:进入解压目录
cd redis-3.2.9
  • 第七步:编译
make
  • 第八步:安装
make install
  • 第九步:进入src目录
cd src
  • 第十步:前台启动
redis 分为前台启动 和后台启动 

前台启动: 
    命令:     ./redis-server
    问题: 启动后 窗口无法操作
  • 第十一步: 可以后台启动
1: 修改配置文件 
    修改redis.config (配置文件在解压目录)
    修改配置文件中的 daemonize
    修改成 
        daemonize yes  (默认是no 改成yes) 保存退出 

2: 指定配置文件启动 
        进入 src目录
        ./redis-server ../redis.conf
  • 第十二步: 查看是否启动成功
ps -ef | grep redis
  • 第十三步: 本地连接
./redis-cli
  • 第十四步: 退出
exit 或者quit

2.主从复制搭建

2.1. 什么是主从复制

表示:部署多个台Redis服务器,多台Redis服务器可以不在同一台机器上,将一台Redis服务器中的数据,复制到其他多台服务器身上,其中被复制的服务器是主节点,复制的服务器是从节点
注意:复制时单项的  是从主节点复制到从节点  一个主节点可以有多个从节点,一个从节点后面也可以有很多从节点 整体是一个树型

UseSenparcGlobal 使用redis redis使用步骤_redis

 

2.2. 主从复制的好处

1: 数据备份: 主节点中的数据 都会被复制到从节点中 ,就算主节点数据丢失了  从节点也会有备份的数据  

2: 故障恢复: 当主节点挂了之后 因为从节点有所有备份的数据 可以使用从节点对外提供服务 对于客户端来讲
             无感知 
             
3: 读写分离: 单机的时候 主节点又负责写 又负责读,此时我们有主节点又从节点 我们主节点可以只负责写 
             从节点只负责读,此时在一些写少读多的系统  我们多个从节点进行负载均衡 大大提升系统的并发量

2.3.配置redis.conf文件

一拖二,主配置不动,复制两个改名字

UseSenparcGlobal 使用redis redis使用步骤_redis_02

二个配置文件都要修改  
 修改一: 修改启动的端口 (端口不能一致)  
 修改二: 指定主节点的ip 端口 
 修改三: 指定主节点的密码

 

UseSenparcGlobal 使用redis redis使用步骤_服务器_03

UseSenparcGlobal 使用redis redis使用步骤_主从复制_04

2.3.1. 启动主节点

./redis-server  ../redis.conf

2.3.2. 启动两个从节点

./redis-server  ../redis2.conf
./redis-server  ../redis3.conf

UseSenparcGlobal 使用redis redis使用步骤_服务器_05

 

2.3.3. 查看主节点

登录 
   ./redis-cli    或者(./redis-cli -a root)登录直接指定密码(密码root)
 验证密码
   auth root
 查看信息
   info replication

UseSenparcGlobal 使用redis redis使用步骤_服务器_06

 

2.3.3. 查看从节点

登录从节点 
验证密码 
    ./redis-cli -h 192.168.91.132 -p 6400 -a root
查看信息
    info replication

UseSenparcGlobal 使用redis redis使用步骤_redis_07

2.3.4. 开放端口

## 开放端口 或者关闭防火墙
firewall-cmd --zone=public --add-port=6400/tcp --permanent
firewall-cmd --zone=public --add-port=6500/tcp --permanent

## 开放端口之后 需要重新启动防火墙
systemctl restart firewalld.service

 

2.3.5. 远程连接

 

UseSenparcGlobal 使用redis redis使用步骤_服务器_08

2.4. 主从复制原理(流程)

主从复制的流程分为3个阶段   第一阶段:准备阶段 (连接阶段) 第二阶段:同步阶段 第三阶段:命令传播阶段

2.4.1. 准备阶段

UseSenparcGlobal 使用redis redis使用步骤_服务器_09

 

  • 注意点

注意点一: 发送ping指令 如果不返回pong时 当发送ping指令是 可能会出现另外2种结果   第一种超时 第二种其他结果 不管是哪中结果 此时socket不可用 则会断开 并且重连 注意点二: 输入密码不正确时 密码如果输入不正确 此socket会断开 并且尝试重连

2.4.2. 复制阶段

复制阶段分类 全量复制: 全量复制 表示主从初次连接此时从机会把主机中的所有的内容全部复制过来 如果数据量大 这个过程是一个重型的过程 部分复制:当全量复制完成之后,再进行写的操作 此时从节点只需要复制新写的内容即可 并不需要重新再全部复制一遍 ,另外一个场景,当进行网络故障时

UseSenparcGlobal 使用redis redis使用步骤_服务器_10

 

2.4.3. 命令传递阶段

数据同步阶段完成后,主从节点进入命令传播阶段;在这个阶段主节点将自己执行的写命令发送给从节点,从节点接收命令并执行,从而保证主从节点数据的一致性。 注意: 命令传播是异步的过程,即主节点发送写命令后并不会等待从节点的回复;此时网络延迟,主从节点之间的网络状况、主节点写命令的执行频率、都会影响数据的一致性,

2.5. 主从复制问题

主从复制无法保证高可用,当主节点宕机之后,从节点不会自动变成主节点对外提供服务 此时需要人工参与,如果由人工参与 则会增加人力成本 并且人工操作 容易产生错误

3.哨兵模式 

UseSenparcGlobal 使用redis redis使用步骤_redis_11

UseSenparcGlobal 使用redis redis使用步骤_服务器_12

 

 

UseSenparcGlobal 使用redis redis使用步骤_linux_13

UseSenparcGlobal 使用redis redis使用步骤_redis_14

UseSenparcGlobal 使用redis redis使用步骤_服务器_15

UseSenparcGlobal 使用redis redis使用步骤_linux_16

 

UseSenparcGlobal 使用redis redis使用步骤_redis_17

UseSenparcGlobal 使用redis redis使用步骤_服务器_18