【Redis 从入门到实战:详细讲解 Redis 安装配置、RDB/AOF 数据持久化方案、一主两从同步部署,深入剖析哨兵模式工作原理与哨兵模式高可用全攻略】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

文章目录

  • 一、非关系型数据库
    • [1.1 什么是非关系型数据库](#1.1 什么是非关系型数据库)
    • [1.2 关系型数据库和非关系型数据库的区别](#1.2 关系型数据库和非关系型数据库的区别)
    • [1.3 关系型数据库和非关系型数据库优缺点](#1.3 关系型数据库和非关系型数据库优缺点)
    • [1.4 非关系型数据库的作用](#1.4 非关系型数据库的作用)
  • 二、Redis安装
    • [2.1 下载redis](#2.1 下载redis)
    • [2.2 修改redis.conf](#2.2 修改redis.conf)
    • [2.3 添加systemctl管理(可选)](#2.3 添加systemctl管理(可选))
    • [2.4 启动redis并测试](#2.4 启动redis并测试)
    • [2.5 redis重要目录介绍](#2.5 redis重要目录介绍)
    • [2.6 redis常用命令工具](#2.6 redis常用命令工具)
    • [2.7 redis的简单操作](#2.7 redis的简单操作)
  • [三、 数据持久化](#三、 数据持久化)
    • [3.1 基本知识](#3.1 基本知识)
      • [3.1.1 什么时数据持久化](#3.1.1 什么时数据持久化)
      • [3.1.2 持久化的方式有哪些](#3.1.2 持久化的方式有哪些)
      • [3.1.3 RDB和AOF特点](#3.1.3 RDB和AOF特点)
      • [3.1.4 大部分企业用的哪种方法?](#3.1.4 大部分企业用的哪种方法?)
    • [3.2 RDB实战](#3.2 RDB实战)
      • [3.2.1 配置RDB](#3.2.1 配置RDB)
      • [3.2.2 扩展:备份文件导入另一台数据](#3.2.2 扩展:备份文件导入另一台数据)
    • [3.3 AOF实战](#3.3 AOF实战)
  • 四、Redis主从同步
    • [4.1 主从同步简介](#4.1 主从同步简介)
    • [4.2 主从同步原理](#4.2 主从同步原理)
    • [4.3 一主两从实战](#4.3 一主两从实战)
      • [4.3.1 环境介绍](#4.3.1 环境介绍)
      • [4.3.2 主数据库配置](#4.3.2 主数据库配置)
      • [4.3.3 从数据库配置](#4.3.3 从数据库配置)
      • [4.3.4 测试主从同步](#4.3.4 测试主从同步)
  • 五、Redis高可用--哨兵模式
    • [5.1 高可用--哨兵模式简介](#5.1 高可用--哨兵模式简介)
    • [5.2 哨兵模式工作原理](#5.2 哨兵模式工作原理)
    • [5.3 哨兵模式实战](#5.3 哨兵模式实战)
      • [5.3.1 环境介绍](#5.3.1 环境介绍)
      • [5.3.2 主数据库配置](#5.3.2 主数据库配置)
      • [5.3.3 从数据库配置](#5.3.3 从数据库配置)
      • [5.3.4 测试主从同步](#5.3.4 测试主从同步)
      • [5.3.5 测试高可用](#5.3.5 测试高可用)


一、非关系型数据库

1.1 什么是非关系型数据库

非关系型数据库(NoSQL,Not Only SQL)是不依赖传统关系模型(表、行、列)的数据库,非关系型数据库则以灵活性、扩展性和高性能为核心,适合互联网、大数据等快速迭代、数据量大的场景

1.2 关系型数据库和非关系型数据库的区别

对比维度 关系型数据库 非关系型数据库
代表数据库 MySQL、Oracle、PostgreSQL Redis、MongoDB、HBase
存储数据类型 结构化数据,基于表、行、列,需预设固定 Schema(字段定义) 非结构化/半结构化数据,支持键值对、文档、列族、图等灵活结构,无需固定 Schema
事务支持 强事务一致性,支持复杂事务和回滚 多数弱化事务,仅核心场景支持 ACID(如 Redis 事务、MongoDB 4.0+ 事务)
查询能力 支持 SQL 语句、可以复杂查询 不提供sql
存储数据 只能使用硬盘存储 内存,硬盘或者随机存储器

1.3 关系型数据库和非关系型数据库优缺点

对比维度 关系型数据库 非关系型数据库
优点 都是表结构,易于维护,sq语言通用,可复杂查询,支持sql 存储数据的格式灵活,读写速度快
缺点 读写性能差,尤其是海量数据的高效率读写;固定表结构,灵活度稍欠;对于高并发读写需求,硬盘I/O是一个很大的瓶颈 不支持sql,无事务处理

1.4 非关系型数据库的作用

NoSQL 并非要替代关系型数据库,而是补全其能力短板 ,它以 "牺牲部分事务一致性" 为代价,换取高性能、高扩展和灵活性,成为海量数据、高并发、灵活结构场景的核心支撑 ,像Redis 这类键值型 NoSQL 常被用作缓存层,部署在 SQL 数据库前方,缓存热点数据以减轻 SQL 压力、提升响应速度(如下图)

二、Redis安装

Redis(Remote Dictionary Server)是一款基于内存的高性能键值型非关系型数据库,支持多种数据结构,兼具缓存、持久化、分布式等核心能力,是互联网架构中不可或缺的中间件
redis特点:丰富的数据结构,支持持久化、事务、主从

2.1 下载redis

Redis官网:https://redis.io/downloads/

bash 复制代码
root@redis:~# wget https://download.redis.io/releases/redis-6.2.7.tar.gz
root@redis:~# ls
redis-6.2.7.tar.gz
root@redis:~# mkdir -p /data/application
root@redis:~# tar xf redis-6.2.7.tar.gz -C /data/application
root@redis:~# mv /data/application/redis-6.2.7/ /data/application/redis
root@redis:~# ls /data/application/
redis
root@redis:~# cd /data/application/redis/
root@redis:/data/application/redis# apt -y install gcc make  #centos用yum -y install gcc make
root@redis:/data/application/redis# make  #这里只需要编译就行,redis自带的有预编译文件Makefile

2.2 修改redis.conf

bash 复制代码
root@redis:/data/application/redis# vim redis.conf     ---修改如下
bind 0.0.0.0          #允许所有人连接
daemonize yes               #开启后台模式将no改为yes
port 6379                       #端口号
dir /data/application/redis/data  #本地数据库存放持久化数据的目录.redis的数据也会存到硬盘里,开机的时候会读硬盘的数据到内存

root@redis:/data/application/redis# mkdir /data/application/redis/data #创建存放数据的目录

2.3 添加systemctl管理(可选)

bash 复制代码
root@redis:/data/application/redis# vim /lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target  #在网络服务启动后启动

[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf  --daemonize no   # Redis 启动命令及配置文件路径
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379   # 停止命令shutdown

[Install]
WantedBy=multi-user.target  #当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行

root@redis:/data/application/redis# systemctl daemon-reload

2.4 启动redis并测试

bash 复制代码
#启动redis
root@redis:/data/application/redis# nohup src/redis-server redis.conf &   #启动redis,如果做了上一步直接systemctl start redis
root@redis:/data/application/redis# netstat -tnlp   #redis默认监听端口6379
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      1283/systemd-resolv 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1743/sshd           
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      9520/redis-server 0 
tcp6       0      0 :::21                   :::*                   LISTEN      1524/vsftpd         
tcp6       0      0 :::22                   :::*                    LISTEN      1743/sshd           
root@redis:/data/application/redis# 
bash 复制代码
#测试
root@redis:/data/application/redis# src/redis-cli 
127.0.0.1:6379> ping  #ping pong成功
PONG
127.0.0.1:6379> quit  #退出
root@redis:/data/application/redis# 

2.5 redis重要目录介绍

bash 复制代码
root@redis:/data/application/redis# tree -L 1 -l
.
├── 00-RELEASENOTES
├── BUGS
├── CONDUCT
├── CONTRIBUTING
├── COPYING
├── data  #存储数据的目录
├── deps
├── INSTALL
├── Makefile   #redis自带的预编译文件,所以redis只需要make
├── MANIFESTO
├── nohup.out  #用nohup启动后会产生的日志输出文件
├── README.md
├── redis.conf  #redis主配置文件
├── runtest
├── runtest-cluster
├── runtest-moduleapi
├── runtest-sentinel
├── sentinel.conf   #哨兵模式配置文件,用于redis高可用部署
├── src   #存放编译后的核心可执行文件
├── tests
├── TLS.md
└── utils

2.6 redis常用命令工具

复制代码
src/redis-cli           #redis的客户端
src/redis-server        #redis的服务端
src/redis-check-aof     #用于修复出问题的AOF文件
src/redis-sentinel      #用于集群管理

2.7 redis的简单操作

bash 复制代码
root@redis:/data/application/redis# src/redis-cli 
127.0.0.1:6379> set name1 lisa  #字段赋值
OK
127.0.0.1:6379> get name1   #查询字段
"lisa"
127.0.0.1:6379> set name2 tom
OK
127.0.0.1:6379> get name2
"tom"
127.0.0.1:6379> del name1  #删除字段
(integer) 1
127.0.0.1:6379> get name1
(nil)
bash 复制代码
#EX和PX
127.0.0.1:6379> set name1 alan EX 5  # EX:设置后5秒内有效
OK
127.0.0.1:6379> get name1
"alan"
127.0.0.1:6379> get name1  #5秒过后该字段失效
(nil)
127.0.0.1:6379> set name3 lili PX 5000  # PX:设置后5000毫秒内有效
OK
127.0.0.1:6379> get name3
"lili"
127.0.0.1:6379> get name3   #5000毫秒后失效
(nil)
bash 复制代码
#NX和XX
127.0.0.1:6379> set class 101 NX  # NX:如果该字段不存在则生效
OK
127.0.0.1:6379> get class
"101"
127.0.0.1:6379> set class 102 NX  # 对已经存在的字段不生效
(nil)
127.0.0.1:6379> get class
"101"
127.0.0.1:6379> set class 103 XX  # XX:如果该字段存在则生效
OK
127.0.0.1:6379> get class
"103"
127.0.0.1:6379> set class1 104 XX  #如果该字段不存在则不生效
(nil)
127.0.0.1:6379> get class1
(nil)
127.0.0.1:6379> 

三、 数据持久化

3.1 基本知识

3.1.1 什么时数据持久化

数据持久化就是把数据保存到可永久保存的存储设备中(如磁盘)

3.1.2 持久化的方式有哪些

redis提供了两种持久化方式:RDB AOF

RDB :是在不同的时间点,将redis存储的数据生成快照存储到磁盘等介质上,RDB会启动子进程,备份所有数据,当前进程,继续提供数据的读写,当备份完成,才替换老的备份文件

AOF :将redis执行过的所有指令记录下来,然后在下次重新启动时只要把这些指令从前到后再重复执行一遍,就可以实现数据恢复

3.1.3 RDB和AOF特点

特性 RDB AOF
数据持久化方式 周期性生成内存数据的快照 实时记录所有写操作指令
对写入的影响 不影响数据写入,快照生成时通过子进程处理,主进程继续服务 可能轻微影响性能(需实时将指令写入日志)
恢复效率 高效,一次性加载整个快照文件还原所有数据 相对较低,需重新执行所有指令,指令越多恢复越慢
数据完整性 较差,故障时可能丢失最后一次快照到故障点之间的所有数据 较好
文件体积 较小(二进制压缩存储) 较大(记录所有操作指令)

3.1.4 大部分企业用的哪种方法?

大部分企业采用RDB+AOF 的混合持久化方案,在这种情况下,如果redis重启,则会优先采用AOF方式来进行数据恢复

3.2 RDB实战

3.2.1 配置RDB

RDB默认开启状态

bash 复制代码
root@redis:/data/application/redis# pkill redis
root@redis:/data/application/redis# vim redis.conf  #修改如下
dbfilename dump.rdb  #dbfilename:持久化数据存储在本地的文件
dir /data/application/redis/data
save 900 1  #若在900秒内发生了 至少 1 次写操作,则触发 RDB 快照
save 300 10  #若在300 秒内发生了 至少 10 次写操作,则触发 RDB 快照
save 60 10000   #若在60秒内发生了 至少 10000 次写操作,则触发 RDB 快照
stop-writes-on-bgsave-error yes  #持久化如果出错则停止备份,no表明忽略错误继续写文件  
rdbcompression yes   #压缩备份文件,压缩会额外消耗cpu但网络传输时间变短
root@redis:/data/application/redis# nohup src/redis-server redis.conf & #启动redis

到此rdb模式就配置好了,只要触发条件,data目录下就会有持久化文件
注:每次快照持久化都是将内存数据完整写入到磁盘一次,如果数据量大的话,而且写操作比较多,会引起大量的磁盘I/O,可能会严重影响性能

3.2.2 扩展:备份文件导入另一台数据

有的时候我们需要迁移redis,需要导入数据

bash 复制代码
root@redis:/data/application/redis# src/redis-cli
127.0.0.1:6379> bgsave   #手动备份
127.0.0.1:6379> quit
root@redis:/data/application/redis# ls data/  
dump.rdb
#将备份文件导入另一台redis,这里我提前准备好了另一台配置一模一样的redis,
root@redis:~# scp -P 22 /data/application/redis/data/dump.rdb 192.168.136.135:/data/application/redis/data/   #只要把备份文件传送到对方存储数据目录下,启动redis即可导入成功
bash 复制代码
#第二台redis
root@4:/data/application/redis# nohup src/redis-server redis.conf &  #启动
root@4:/data/application/redis# src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get name2  #数据同步成功
"tom"
127.0.0.1:6379> get class
"103"

3.3 AOF实战

AOF默认不开启

bash 复制代码
root@redis:~# vim /data/application/redis/redis.conf #修改配置文件
appendonly yes #开启aof
appendfilename appendonly.aof  #指定aof文件名称
appendfsync everysec  #每秒同步一次,这里有三个参数:always,everysec,no
root@redis:~# systemctl start redis
root@redis:~# ls /data/application/redis/data/  #产生备份文件
appendonly.aof  dump.rdb

四、Redis主从同步

4.1 主从同步简介

redis主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,很消耗性能的操作就可以由从服务器来处理,比如redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低redis的处理性能。主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能

4.2 主从同步原理

  • 同步触发 :从服务器主动向主服务器发送SYNC指令,请求数据同步
  • 主库数据快照 :主服务器接收指令后,立即调用 BGSAVE 生成子进程,专门将内存数据持久化为 RDB 文件;此期间主库的所有写指令会暂存于内存缓存,不影响正常服务
  • RDB 文件传输与加载BGSAVE 完成后,主服务器将 RDB 文件发送给从服务器;从服务器接收后先写入磁盘,再加载至内存,实现基础数据对齐
  • 增量指令同步RDB 加载完成后,主服务器将快照期间缓存的写指令,以 Redis 协议格式同步给从服务器,确保数据完全一致

此外,主服务器具备"请求合并"优化:若多个从服务器同时发送 SYNC 指令,主服务器仅执行一次 BGSAVE,再将同一 RDB 文件分发给所有从库,避免资源浪费

4.3 一主两从实战

4.3.1 环境介绍

首先准备三台已经安装好redis的机器

主机名 IP地址 服务 安装目录
redis-master 192.168.136.10 redis6.2.7 /data/application/
redis-slave1 192.168.136.134 redis6.2.7 /data/application/
redis-slave2 192.168.136.135 redis6.2.7 /data/application/

4.3.2 主数据库配置

bash 复制代码
[root@redis-master redis]# vim redis.conf 
protected-mode no #将加密保护关闭,因为我没有设置密码,所以我这里把它关掉
[root@redis-master redis]# nohup src/redis-server redis.conf &  #后台启动redis

4.3.3 从数据库配置

bash 复制代码
#slave1配置
root@redis-slave1:~# cd /data/application/redis/
root@redis-slave1:/data/application/redis# vim redis.conf #添加一行
replicaof 192.168.136.10 6379 #配置主数据库ip加端口
root@redis-slave1:/data/application/redis# nohup src/redis-server redis.conf &  #后台启动redis
bash 复制代码
#slave2配置
root@redis-slave2:~# cd /data/application/redis/
root@redis-slave2:/data/application/redis# vim redis.conf #添加一行
replicaof 192.168.136.10 6379 #配置主数据库ip加端口
root@redis-slave2:/data/application/redis# nohup src/redis-server redis.conf &  #后台启动redis

4.3.4 测试主从同步

bash 复制代码
[root@redis-master redis]# src/redis-cli  #登录主数据库
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> info replication   #查看主从状态
# Replication
role:master
connected_slaves:2   #表示
slave0:ip=192.168.136.134,port=6379,state=online,offset=266,lag=1
slave1:ip=192.168.136.135,port=6379,state=online,offset=266,lag=0
master_failover_state:no-failover
master_replid:2386e5eaeb2387a62a11a84b98eb737ed3fdddb6
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:266
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:266
127.0.0.1:6379> set Name alan  #新建测试数据
OK
127.0.0.1:6379> get Name
"alan"
127.0.0.1:6379> 
bash 复制代码
#salve1查看是否同步
root@redis-slave1:/data/application/redis# src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get Name  #同步成功
"alan"

#salve2查看是否同步
root@redis-slave2:/data/application/redis# src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get Name  #同步成功
"alan"

五、Redis高可用--哨兵模式

5.1 高可用--哨兵模式简介

Redis 自带的 Sentinel(哨兵)工具用于监控集群中主节点状态。当主节点异常时,哨兵会自动执行主从切换:将一个从节点升级为新主节点,原主节点降级为从节点,同时自动更新哨兵配置(sentinel.conf)中的监控目标

5.2 哨兵模式工作原理

  • 每个哨兵以每秒钟一次的频率向它所知的Master,Slave以及其他 哨兵 实例发送一个 PING 命令
  • 如果一个实例距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被哨兵标记为主观下线
  • 如果一个Master被标记为主观下线,则正在监视这个Master的所有 哨兵 要以每秒一次的频率确认Master的确进入了主观下线状态
  • 当有足够数量的 哨兵(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线
  • 主从切换,这时从节点会通过选举来成为主节点

5.3 哨兵模式实战

5.3.1 环境介绍

首先准备三台已经安装好redis的机器,哨兵模式的前提是要做主从同步,不然,当主节点故障自动切换到从节点后,从节点没有同步主节点的数据,这样的切换没有意义

主机名 IP地址 服务 安装目录
redis-master 192.168.136.10 redis6.2.7 /data/application/
redis-slave1 192.168.136.134 redis6.2.7 /data/application/
redis-slave2 192.168.136.135 redis6.2.7 /data/application/

注:配置redis时redis.conf文件设置:bind 0.0.0.0

5.3.2 主数据库配置

bash 复制代码
[root@redis-master redis]# vim sentinel.conf
sentinel monitor mymaster 127.0.0.1 6379 2 #当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了
sentinel down-after-milliseconds mymaster 3000   #单位毫秒
#若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 10000  
protected-mode no #如果redis没有设置密码,可以把这个加密模式关掉
[root@redis-master redis]# nohup src/redis-server redis.conf &  #后台启动redis
[root@redis-master redis]# nohup src/redis-sentinel sentinel.conf & #启动哨兵模式

5.3.3 从数据库配置

bash 复制代码
#slave1配置
root@redis-slave1:/data/application/redis# vim sentinel.conf 
sentinel monitor mymaster 192.168.136.10 6379 2 #slave上面写的是master的ip
sentinel down-after-milliseconds mymaster 3000   #单位毫秒
#若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 10000  
protected-mode no #如果redis没有设置密码,可以把这个加密模式关掉
root@redis-slave2:/data/application/redis# nohup src/redis-server redis.conf &  #后台启动redis
root@redis-slave1:/data/application/redis# nohup src/redis-sentinel sentinel.conf &
bash 复制代码
#slave2配置
root@redis-slave2:/data/application/redis# vim sentinel.conf 
sentinel monitor mymaster 192.168.136.10 6379 2 #slave上面写的是master的ip
sentinel down-after-milliseconds mymaster 3000   #单位毫秒
#若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 10000  
protected-mode no #如果redis没有设置密码,可以把这个加密模式关掉
root@redis-slave2:/data/application/redis# nohup src/redis-server redis.conf &  #后台启动redis
root@redis-slave2:/data/application/redis# nohup src/redis-sentinel sentinel.conf &

5.3.4 测试主从同步

bash 复制代码
#验证主从同步
[root@redis-master redis]# src/redis-cli  #master创建测试数据
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set addr china
OK
127.0.0.1:6379> get addr
"china"
127.0.0.1:6379> quit

root@redis-slave1:/data/application/redis# src/redis-cli  
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get addr  #slave1同步成功
"china"

root@redis-slave2:/data/application/redis# src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get addr  #slave2同步成功
"china"

5.3.5 测试高可用

bash 复制代码
#停掉master服务,看是否有高可用效果
[root@redis-master redis]# ps aux | grep redis
root      23562  0.1  0.2 165080  9508 ?        Ssl  15:10   0:00 src/redis-server 0.0.0.0:6379
root      23789  0.3  0.2 162520 10388 pts/1    Sl   15:15   0:00 src/redis-sentinel *:26379 [sentinel]
root      23960  0.0  0.0 112824   988 pts/1    S+   15:18   0:00 grep --color=auto redis
[root@redis-master redis]# kill 23562  #kill掉server,别把kill掉了
[root@redis-master redis]# ps aux | grep redis
root      23789  0.3  0.2 162520 10488 pts/1    Sl   15:15   0:00 src/redis-sentinel *:26379 [sentinel]
root      23986  0.0  0.0 112824   988 pts/1    S+   15:18   0:00 grep --color=auto redis
[root@redis-master redis]# 
bash 复制代码
#查看slave1或slave2
root@redis-slave1:/data/application/redis# src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> info replication  #查看slave1的主从情况,可见此时slave1选举成为主节点
# Replication
role:master
connected_slaves:1   #表示有一个从节点是192.168.136.135
slave0:ip=192.168.136.135,port=6379,state=online,offset=567315,lag=1
master_failover_state:no-failover
master_replid:05b52bddd888820c8be743d1b6ee00685f81e47e
master_replid2:63aedef95111d7ff5361dd643e4867862a0cd5fc
master_repl_offset:567474
second_repl_offset:51891
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:567474
127.0.0.1:6379> 
bash 复制代码
#验证主从同步
root@redis-slave1:/data/application/redis# src/redis-cli   
127.0.0.1:6379> set name lisa   #slave1创建测试数据
OK
127.0.0.1:6379> get name
"lisa"
127.0.0.1:6379> 

root@redis-slave2:/data/application/redis# src/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get name  #slave2同步成功
"lisa"
127.0.0.1:6379> 

注:

文中若有疏漏,欢迎大家指正赐教。

本文为100%原创,转载请务必标注原创作者,尊重劳动成果。

求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~

相关推荐
ITUnicorn2 小时前
【Vue2+SpringBoot在线商城】13-本项目运用到的技术
java·spring boot·redis·后端
2401_863318632 小时前
基于RS-232C的串口通信
数据库·mongodb
csdn_aspnet2 小时前
用 MySQL 玩转数据可视化:从底层数据到 BI 工具的桥接
数据库·mysql·信息可视化·bi
明洞日记2 小时前
【软考每日一练013】解析嵌入式网络数据库(NDB)架构
数据库·5g·嵌入式·软考·嵌入式实时数据库
wb043072012 小时前
一次jvm配置问题导致的数据库连接异常
服务器·jvm·数据库·后端
酷酷的崽7982 小时前
搭载cpolar,让PostgreSQL数据库远程访问超丝滑
数据库·postgresql
API开发2 小时前
apiSQL 迁移至已有 PostgreSQL 数据库指南
数据库·postgresql·api开发·postgrest·接口开发工具·api管理软件
学掌门2 小时前
从数据库到可视化性能,5个大数据分析工具测评,python只排倒数
数据库·python·数据分析
编程小风筝2 小时前
Django REST framework实现安全鉴权机制
数据库·安全·django
secondyoung2 小时前
队列原理与实现全解析
c语言·数据库·mysql·算法·队列