主从复制 master slave
核心解决问题:数据冗余备份,不能解决故障的自动转移

主从复制讲解:
1.主节点负责写入操作,从节点负责同步主节点的冗余数据,不能写入
2.当主节点挂掉之后,从节点还是从节点,不能进行故障转移。

这里为了方便操作,搭建伪分布式,就是模拟在一台服务器上,通过修改端口搭建多个redis服务

服务器ip 端口 节点
192.168.0.114 6379 master
192.168.0.114 6380 slave
192.168.0.114 6381 slave

搭建一主二从演示:

#进入目录
cd /app/master-slave/conf
#复制2个配置文件
cp redis.conf redis-6380.conf
cp redis.conf redis-6381.conf#编辑从节点配置文件redis-6380.conf
vim redis-6380.conf
92行 port 6379 改为 6380
158行 redis_6379.pid 修改为redis_6380.pid
286行replicaof <masterip> <masterport>改为replicaof 192.168.0.114 6379#编辑从节点配置文件redis-6381.conf
vim redis-6381.conf
92行 port 6379 改为 6381
158行 redis_6379.pid 修改为redis_6381.pid
286行replicaof <masterip> <masterport>改为replicaof 192.168.0.114 6379

启动redis的3个节点(1主2从)

/app/master-slave/bin/redis-server /app/master-slave/conf/redis.conf
/app/master-slave/bin/redis-server /app/master-slave/conf/redis-6380.conf
/app/master-slave/bin/redis-server /app/master-slave/conf/redis-6381.conf
主:咱们启动redis是基于配置后天启动的,因此前面都是通用的,
也可以单独都复制一份,效果一样的

分别启动redis 3个节点的客户端

#启动redis 主节点客户端
/app/master-slave/bin/redis-cli -h localhost -p 6379
#主节点操作日志如下:
[root@localhost conf]# /app/master-slave/bin/redis-cli -h localhost -p 6379
localhost:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.0.114,port=6380,state=online,offset=196,lag=1
slave1:ip=192.168.0.114,port=6381,state=online,offset=196,lag=1
master_replid:c784bb3d47875dc0d4747d8a67392cacce4dd41c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:196
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:196
localhost:6379>
#启动redis 端口为6380客户端
/app/master-slave/bin/redis-cli -h localhost -p 6380
#主节点操作日志如下:
[root@localhost ~]# /app/master-slave/bin/redis-cli -h localhost -p 6380
localhost:6380> info replication
# Replication
role:slave
master_host:192.168.0.114
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:364
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:c784bb3d47875dc0d4747d8a67392cacce4dd41c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:364
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:364
localhost:6380>
#启动redis 端口为6380客户端
/app/master-slave/bin/redis-cli -h localhost -p 6381
#主节点操作日志如下:
[root@localhost ~]# /app/master-slave/bin/redis-cli -h localhost -p 6381
localhost:6381> info replication
# Replication
role:slave
master_host:192.168.0.114
master_port:6379
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:448
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:c784bb3d47875dc0d4747d8a67392cacce4dd41c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:448
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:448
localhost:6381>

下面就可以测试了

需求测试:
1.在主节点上set 值 并查看
2.在从节点获取主节点set的值
3.登录从节点,尝试set 值,预测结果,不能执行写入操作
#主节点测试操作日志记录:
localhost:6379> set a aaa
OK
localhost:6379> get a
"aaa"
localhost:6379>#slave节点测试操作日志记录:
localhost:6380> get a
"aaa"
localhost:6380> set b bbb
(error) READONLY You can't write against a read only replica.
localhost:6380> #slave节点测试操作日志记录:
localhost:6381> get a
"aaa"
localhost:6381> set c ccc
(error) READONLY You can't write against a read only replica.
localhost:6381>

从上面,可以得出结论:
主节点master负责写入操作,从节点负责同步主节点的冗余数据,但是,不能执行写入操作。

SpringBoot整合Redis 主从复制_01相关推荐

  1. SpringBoot整合Redis 主从复制_02

    文章目录 1. maven依赖 2. RedisConfig 3. RedisUtils 4. application.yml 5. 单元测试 6. redis客户端查看 1. maven依赖 < ...

  2. Redis学习(含 Springboot 整合 Redis)

    Redis NoSQL (not only sql) 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理. 1970年 E.F.Codd ...

  3. SpringBoot整合Redis+Redis缓存应用+Redis实现Session共享+...

    一.SpringBoot整合Redis 1.导入依赖 <!--存在Redis依赖--> <dependency><groupId>org.springframewo ...

  4. SpringBoot第九篇: springboot整合Redis

    这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...

  5. Springboot整合redis(lettuce)

    springboot 整合redis(lettuce) 首先确保电脑上装了redis.最好能用redisDesktop查看一下数据情况 redis是一款非常流行的Nosql数据库.redis的功能非常 ...

  6. 【Java进阶】SpringBoot整合Redis

    SpringBoot整合Redis SpringBoot 操作数据:spring-data jpa jdbc mongodb redis SpringData 也是和 SpringBoot 齐名的项目 ...

  7. SpringBoot整合Redis要注意的那些

    前言 昨天自己在重新学习SpringBoot整合Redis时,遇到了一个问题java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/ ...

  8. SpringBoot(六):SpringBoot整合Redis

    From: https://blog.csdn.net/plei_yue/article/details/79362372 前言 在本篇文章中将SpringBoot整合Redis,使用的是RedisT ...

  9. SpringBoot系列十:SpringBoot整合Redis

    From: https://www.cnblogs.com/leeSmall/p/8728231.html 声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Sprin ...

最新文章

  1. 奇点云发布三大无人零售终端产品,“云”“端”结合赋能零售商
  2. 软件测试第二次作业:JUNIT单元测试方法
  3. python在mac上运行不用装模块_MAC OSX使用Python安装mysql模块问题
  4. BZOJ2115XOR——线性基
  5. #和##在宏替换中的作用
  6. 【安装配置】Oracle数据库Linux系统下安装(图形界面)
  7. hdu-5992 Finding Hotels(kd-tree)
  8. Mysql实现企业级数据库主从复制架构实战
  9. 【LeetCode】【字符串】题号:*557. 反转字符串中的单词 III
  10. vue项目部署的一些配置和流程
  11. 做自由职业者是怎样的体验
  12. 回顾18年我的Java自动化测试框架
  13. python的多元数据类型(上)
  14. html如何让文字变斜体,CSS中如何让文字变成斜体
  15. python 绘制正弦余弦函数 matplotlib的基本使用
  16. NYOJ-71 独木舟上的旅行
  17. 批处理命令更改Windows鼠标滑轮滚动方向
  18. 计算机机型分pc机和什么,三种等分的电脑打印纸一般指什么尺寸
  19. 写出高斯定理的数学形式并文字解释
  20. 两会话文明 | 文明的行为,也是最美的风景

热门文章

  1. 何传启:第六次科技革命的三大“猜想
  2. 为什么人类的大脑认为数学“美”?
  3. php dos,防止用户利用PHP代码DOS造成用光网络带宽
  4. CentOS下升级python版本
  5. python pip清华源安装库
  6. ubuntu 安装PCL
  7. 软件分析与设计:分析什么?如何设计?
  8. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
  9. 点触科技:构建实时计算和数据仓库解决方案
  10. 5年时间,我从开发做到总裁的秘籍--如何提升技术型管理者的领导力