惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
量子位
腾讯CDC
A
About on SuperTechFans
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
V
V2EX
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
罗磊的独立博客
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
有赞技术团队
有赞技术团队

祈雨的笔记

安全多方计算MPC spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400
redis(2)双机备份
祈雨的笔记 · 2017-09-30 · via 祈雨的笔记

一、准备

主从 IP:端口
主Redis 192.168.100.6:6380
从Redis 192.168.100.6:6381

二、主从复制

修改从Redis的配置文件

1
vi redis.conf

在从Redis的配置文件中添加主Redis的ip和端口号

1
2
3
# slaveof <masterip> <masterport>
#添加
slaveof 192.168.100.6 6380

三、测试主从

先启动主Redis,再启动从Redis。其中,从Redis的启动界面会显示连接到主Redis,并开始同步。
image

!!!主Redis可以读写数据,从Redis只能读取数据,不可写入数据
image

四、哨兵模式

开启Redis哨兵模式,可实现当主Redis宕机后,从Redis自动转换为主Redis,保证Redis系统正常运行。
在redis目录中修改哨兵配置文件

1
vi sentinel.conf

修改配置文件

1
2
3
4
5
protected-mode no
#添加默认主Redis的ip 端口和投票次数(主Redis宕机后,由剩下的从Redis进行投票选举出一个主服务器)
sentinel monitor mymaster 192.168.100.6 6380 1
#哨兵每5s检查Redis集群
sentinel down-after-milliseconds mymaster 5000

启动哨兵

1
./src/redis-server ./sentinel.conf --sentinel

控制台打印 +slave slave 192.168.100.6:6381 192.168.100.6 6381 @ mymaster 192.168.100.6 6380即192.168.100.6 6381为从Redis,192.168.100.6 6380为主Redis

五、测试哨兵

关闭主Redis,5秒后,哨兵控制台打印以下代码

1
2
3
65506:X 05 Jul 15:44:34.462 # +switch-master mymaster 192.168.100.6 6380 192.168.100.6 6381
65506:X 05 Jul 15:44:34.462 * +slave slave 192.168.100.6:6380 192.168.100.6 6380 @ mymaster 192.168.100.6 6381
65506:X 05 Jul 15:44:39.497 # +sdown slave 192.168.100.6:6380 192.168.100.6 6380 @ mymaster 192.168.100.6 6381

即将原来的从Redis192.168.100.6 6381 转换为主Redis,原来的主Redis192.168.100.6 6381转换为从Redis

六、Java通过哨兵访问redis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set<String> sentinels = new HashSet<String>();

sentinels.add("192.168.100.6:26379");
GenericObjectPoolConfig config = new GenericObjectPoolConfig();
config.setMaxTotal(100);
config.setMinIdle(10);
JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels,config);
Jedis jedis = null;
jedis = pool.getResource();
jedis.set("name", "456");
String value = jedis.get("name");
System.out.println(value);
jedis.close();
pool.close();