SpringBoot整合Redis 主从复制_01
主从复制 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相关推荐
- SpringBoot整合Redis 主从复制_02
文章目录 1. maven依赖 2. RedisConfig 3. RedisUtils 4. application.yml 5. 单元测试 6. redis客户端查看 1. maven依赖 < ...
- Redis学习(含 Springboot 整合 Redis)
Redis NoSQL (not only sql) 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理. 1970年 E.F.Codd ...
- SpringBoot整合Redis+Redis缓存应用+Redis实现Session共享+...
一.SpringBoot整合Redis 1.导入依赖 <!--存在Redis依赖--> <dependency><groupId>org.springframewo ...
- SpringBoot第九篇: springboot整合Redis
这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...
- Springboot整合redis(lettuce)
springboot 整合redis(lettuce) 首先确保电脑上装了redis.最好能用redisDesktop查看一下数据情况 redis是一款非常流行的Nosql数据库.redis的功能非常 ...
- 【Java进阶】SpringBoot整合Redis
SpringBoot整合Redis SpringBoot 操作数据:spring-data jpa jdbc mongodb redis SpringData 也是和 SpringBoot 齐名的项目 ...
- SpringBoot整合Redis要注意的那些
前言 昨天自己在重新学习SpringBoot整合Redis时,遇到了一个问题java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/ ...
- SpringBoot(六):SpringBoot整合Redis
From: https://blog.csdn.net/plei_yue/article/details/79362372 前言 在本篇文章中将SpringBoot整合Redis,使用的是RedisT ...
- SpringBoot系列十:SpringBoot整合Redis
From: https://www.cnblogs.com/leeSmall/p/8728231.html 声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Sprin ...
最新文章
- 奇点云发布三大无人零售终端产品,“云”“端”结合赋能零售商
- 软件测试第二次作业:JUNIT单元测试方法
- python在mac上运行不用装模块_MAC OSX使用Python安装mysql模块问题
- BZOJ2115XOR——线性基
- #和##在宏替换中的作用
- 【安装配置】Oracle数据库Linux系统下安装(图形界面)
- hdu-5992 Finding Hotels(kd-tree)
- Mysql实现企业级数据库主从复制架构实战
- 【LeetCode】【字符串】题号:*557. 反转字符串中的单词 III
- vue项目部署的一些配置和流程
- 做自由职业者是怎样的体验
- 回顾18年我的Java自动化测试框架
- python的多元数据类型(上)
- html如何让文字变斜体,CSS中如何让文字变成斜体
- python 绘制正弦余弦函数 matplotlib的基本使用
- NYOJ-71 独木舟上的旅行
- 批处理命令更改Windows鼠标滑轮滚动方向
- 计算机机型分pc机和什么,三种等分的电脑打印纸一般指什么尺寸
- 写出高斯定理的数学形式并文字解释
- 两会话文明 | 文明的行为,也是最美的风景