当前位置:网站首页>Redis的集群模式
Redis的集群模式
2022-08-02 00:09:00 【是九九不是酒酒】
1.为什么使用Redis集群模式
redis单机版,出现单机故障后,导致redis无法使用,如果程序使用redis,间接导致程序出错。
2.redis的集群模式
主从复制模式
哨兵模式
集群化模式
2.1.主从复制模式
2.1.1.什么是主从复制模式
一主多从模式。一个主节点,多个从节点,那么主节点可以负责:读操作,写操作。 从节点只能负责读操作,不能负责写操作。 这样就可以把读的压力从主节点分摊到从节点,以减少主节点的压力。当主节点执行完写命令,会把数据同步到从节点。
原则:配从不配主
2.1.2.如何配置主从复制模式
(1)准备条件
一主二从-----3台----开三个虚拟机--为了节省虚拟机,在一台主机开启三个redis服务。让7001作为主节点,7002,7003位子节点,在准备一个目录,将redis.cof这个文件复制到你新建的目录中
(2)修改配置文件
1.修改端口号为7001,7002,7003
2.修改rdb文件的名称
![]()
3.如果你的aof开启的了,就要关闭
![]()
(3)将修改好的文件拖入到你新建的目录中,最好重命名一下
(4)启动Redis服务

(5)登录一下客服端

(6)查看一下主从关系,命令是:info replication 你会发现都是主节点

(6)设置从节点 命令:slaveof 主节点的ip 主节点的端口号,设置好之后,查看一下主从关系
up 存活 down 死亡 salveof on one--关闭子节点


(7)主节点可以读和写。但是从节点只能读

2.2.哨兵模式
2.2.1.为什么使用哨兵模式
由于主从模式,主节点单机后,从节点不会自动上位。 增加一个哨兵服务,该哨兵时刻监控master,如果master挂了,哨兵会在从节点中选举一位为主节点【哨兵投票机制】默认是sentinel.cof文件。

2.2.2.如何使用哨兵模式
(1)修改配置文件--sentinel.cof

(2)启动哨兵
redis-sentinel sentinel.conf
(3)测试,关闭主节点,看一下子节点会不会成为主节点
shutdown 关闭Redis
2.3.集群化模式
2.3.1.为什么使用集群化模式
不管上面的主从还是哨兵模式,都无法解决单节点写操作的问题。如果这时写操作的并发比较高。这是可以实验集群化模式【去中心化模式】
2.3.2.集群化的原理
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。
3.2.3.如何使用集群化模式
(1)前提
准备好三个主节点,三个从节点
6001 6002 6003 6004 6005 6006
创建一个目录,将我们配置文件放入目录中
(2)设置配置文件
Redis-1 防火墙--6379
bind 0.0.0.0
port 6001
daemonize yes
dbfilename dump6001.rdb
# 打开aof 持久化
appendonly yes
appendonly appendonly6001.aof
# 开启集群
cluster-enabled yes
# 集群的配置文件,该文件自动生成
cluster-config-file nodes-6001.conf
# 集群的超时时间
cluster-node-timeout 15000
(3)启动这六个redis服务

(4)分配槽
redis-cli --cluster create --cluster-replicas 1 192.168.118.110:7000 192.168.118.110:7001 192.168.118.110:7002 192.168.118.111:7003 192.168.118.111:7004 192.168.118.111:7005

注意: 一定要保证每个节点都没有数据。
(5)进入redis
redis-cli -c-h 192.168.223.155 -p 6001
加上-c 进入集群模式 不加-c进入单击模式
(6)添加数据
发现添加的数据在6003的接口,是因为输入key 的时候,进行了crc16计算,将计算出来整数 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点 ,可以把写操作均摊到不同的节点上,减轻了单个主节点的压力。

4.java连接redis
4.1.redis支持哪些语言可以操作


4.2.使用jedis
边栏推荐
- 06-SDRAM :SDRAM控制模块
- After an incomplete recovery, the control file has been created or restored, the database must be opened with RESETLOGS, interpreting RESETLOGS.
- 632. 最小区间
- 测试点等同于测试用例吗
- els 方块变形判断。
- 当奈飞的NFT忘记了Web2的业务安全
- Arduino Basic Syntax
- How to solve the error when mysql8 installs make
- JSP out. The write () method has what function?
- Keepalived 高可用的三种路由方案
猜你喜欢
随机推荐
基于数据驱动的变电站巡检机器人自抗扰控制
解析正则表达式的底层实现原理
Double queue implementation stack?Dual stack implementation queue?
JSP out.println()方法具有什么功能呢?
An Enhanced Model for Attack Detection of Industrial Cyber-Physical Systems
IO流基础
Unity—四元数、欧拉角API+坐标系统
基于编码策略的电网假数据注入攻击检测
[HCIP] BGP Small Experiment (Federation, Optimization)
JSP out. The write () method has what function?
How does JSP use request to get the real IP of the current visitor?
TCL:在Quartus中使用tcl脚本语言进行管脚约束
信息物理系统状态估计与传感器攻击检测
扑克牌问题
【解决】win10下emqx启动报错Unable to load emulator DLL、node.db_role = EMQX_NODE__DB_ROLE = core
JSP Taglib指令具有什么功能呢?
Transient Stability Distributed Control of Power System with External Energy Storage
els block boundary deformation processing
After reshipment tencent greetings to monitor if the corresponding service does not exist by sc. Exe command to add services
TCL: Pin Constraints Using the tcl Scripting Language in Quartus









