当前位置:网站首页>redis集群模式--解决redis单点故障
redis集群模式--解决redis单点故障
2022-08-11 05:12:00 【匿名热心市民】
redis单机版,出现单机故障后,导致redis无法使用,如果程序使用redis,间接导致程序出错。
redis的集群模式:
1.主从复制模式
2.哨兵模式
3.集群化模式
主从复制模式
一主多从模式。一个主节点,多个从节点,那么主节点可以负责:读操作,写操作。从节点只能负责读操作,不能负责写操作。这样就可以把读的压力从主节点分摊到从节点,以减少主节点的压力。
当主节点执行完写命令,会把数据同步到从节点。
在 Redis 主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性较低,不适用于线上生产环境。
如何搭建主从关系
原则:配从不配主。
(电脑比较渣)我们使用一天虚拟机模拟三台,节省电脑资源。
先创建一个文件夹,将redis启动文件放进去三个;

修改配置文件:
修改三个



进入redis:

查看主从关系:
命令:
info replication

配置子节点:
命令:
slaveof 主节点ip地址 主节点端口号

再次查看主从关系:

数据同步


模拟主节点宕机

手动切换主节点:很麻烦

哨兵模式
由于主从模式,主节点单机后,从节点不会自动上位。增加一个哨兵服务,该哨兵时刻监控master,如果master挂了,哨兵会在从节点中选举一位为主节点【哨兵投票机制】。
配置哨兵模式:

开启新一台虚拟机作为哨兵,哨兵模式启动后不能退出,退出则失效。

配置文件解析:

关于哨兵认可数:


启动哨兵:
redis-sentinel sentinel.conf


等待几十秒:



集群化模式
redis 集群中内置了16384个哈希槽,当需要在Redis,集群中放置一个key-value时,redis. 先对key使用crc16算法算出一个整数结果,然后把结果对16384求余数,这样每个key都会对应一个编号在0-16383之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。

搭建集群:
搭建三个节点
主节点的数量为奇数个,因为当主节点宕机超过一半集群就死亡,所以建成奇数个。偶数个会产生刚好一半的情况。
设置配置文件
redis.conf



启动


分槽值
redis-cli --cluster create --cluster-replicas 1 192.168.92.241:6001 192.168.92.241:6002 192.168.92.241:6003 192.168.92.241:6004 192.168.92.241:6005 192.168.92.241:6006

成功

测试:
redis-cli -c -h 192.168.92.241 -p 6001
-c表示集群模式启动,不加表示单机启动


可以发现,每次存完值和获取值后就会跳转到对应的节点,所以启动集群时,没有一定要启动那台的规定,任意启动。
redis连接idea
redis支持的语言

java连接redis的第三方依赖,常用前三个
使用jedis
创建maven工程

引入依赖

边栏推荐
- zabbix构建企业级监控告警平台
- Development Tools Lecture 7: Alibaba Cloud Log Query and Analysis
- [ARM] rk3399 mounts nfs error
- Switch and Router Technology-35-NAT to PAT
- Kong实现禁止国外IP访问
- ARM Architecture 4: Embedded Hardware Platform Interface Development
- Switches and routers technology - 24 - configure OSPF single area
- 2.2 user manual] [QNX Hypervisor 10.15 vdev timer8254
- K8s Review Notes 7--K8S Implementation of Redis Standalone and Redis-cluster
- 2022 coal mine gas inspection test, simulation test question and answer
猜你喜欢

BGP Comprehensive Experiment

C语言:实用调试技巧

How to use svg-icon (svg-sprite-loader plugin)

The use of async (asynchronous) and await

交换机和路由器技术-34-动态NAT
![[Embedded open source library] The use of cJSON, an efficient and streamlined json parsing library](/img/11/26ec988a23b239d7b01e2e29e3e32d.png)
[Embedded open source library] The use of cJSON, an efficient and streamlined json parsing library

交换机和路由器技术-33-静态NAT

元宇宙社交应用,靠什么吸引用户「为爱发电」?

How to switch Green Shield encryption to IP-Guard encryption smoothly

Paper Notes: Bag of Tricks for Long-Tailed Visual Recognition with Deep Convolutional Neural Networks
随机推荐
绿盾加密如何顺利切换成IP-Guard加密
C statement: data storage
Day38 LeetCode
Switch and Router Technology-35-NAT to PAT
[QNX Hypervisor 2.2 User Manual] 10.16 vdev virtio-blk
Switches and routers technology - 21 - RIP routing protocol
交换机和路由器技术-24-OSPF单区域配置
2022建筑焊工(建筑特殊工种)考题及模拟考试
zabbix构建企业级监控告警平台
在 关闭页面/卸载(unload)文档 之前向服务器发送请求
FPGA engineer interview questions collection 111~120
Application layer protocol - DNS
【ARM】rk3399挂载nfs报错
paddlepaddle实现CS_CE Loss且并入PaddleClas
About CC Attacks
【无标题】2022年胺基化工艺考试题模拟考试题库及在线模拟考试
form form submission database Chinese becomes a question mark
2022年Android面试中最常问的问题是什么?
网络技能树
2022 building welder (building a special type of work) examination questions and simulation test