Redis发布订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息
Redis 客户端可以订阅任意数量的频道
Redis主从复制
Redis主从复制是指在Redis中设置一个主节点(Master)和一个或多个从节点(Slave),主节点将自己的数据复制到从节点上,从节点会自动同步主节点上的数据,以实现数据的备份和读写分离
- 数据备份和容灾:通过主从复制,可以将主节点的数据复制到一个或多个从节点上,从而实现数据的备份和容灾。当主节点发生故障或数据丢失时,可以快速切换到从节点,保证数据的可用性和持久性
- 负载均衡:通过将读操作分摊到多个从节点上,可以减轻主节点的负载压力。主节点专注于处理写操作,而从节点处理读操作,提高系统的整体性能和吞吐量
- 高可用性:主从复制可以提高系统的可用性。当主节点发生故障时,可以快速切换到从节点,实现自动故障转移,减少服务中断时间,提高系统的稳定性和可靠性
- 数据分析和报表生成:通过将读操作分摊到从节点上,可以用于数据分析和报表生成。由于主节点专注于处理写操作,从节点可以用于查询和分析数据,提供实时的数据分析和报表生成功能
- 高并发读取:通过将读操作分摊到多个从节点上,可以提高系统的并发读取能力。多个从节点可以同时处理读请求,提高系统的并发处理能力,减少读取的响应时间
info replication | 获取关于主从复制的相关信息 |
slaveof ip port | 将当前Redis节点设置为从节点,并指定一个主节点进行主从复制 |
slaveof no one | 命令用于将当前Redis节点从从节点切换为独立的主节点,解除与主节点的连接 |
哨兵模式
哨兵模式是Redis提供的一种高可用性解决方案,用于监控和管理Redis节点的自动故障转移
- 主观下线:一个哨兵节点基于自己的主观判断,认为一个Redis节点(主节点或从节点)不可用的状态;当一个哨兵节点检测到一个节点无法响应心跳或超时时,它会将该节点标记为主观下线;主观下线只是一个哨兵节点自己的看法,并不代表其他哨兵节点或客户端也认为该节点不可用
- 客观下线:多个哨兵节点之间达成共识,认为一个节点不可用的状态;当多个哨兵节点通过消息通信交换信息后,如果它们都达成共识,认为一个节点不可用,那么该节点将被标记为客观下线;客观下线是基于多个节点的共识,具有更高的可靠性和准确性
单哨兵模式
单哨兵模式(Single Sentinel mode)是哨兵模式的一种简化形式,适用只有一个Redis主节点和一个哨兵节点的情况
多哨兵模式
多哨兵模式是哨兵模式的一种扩展形式,适用于需要更高可靠性和容错性的情况
Redis缓存穿透与雪崩
缓存穿透
Redis缓存穿透(Cache Penetration):恶意请求或者非法请求绕过缓存层直接访问数据库。当一个请求查询一个不存在的数据时,缓存层无法命中缓存,也无法从数据库中获取数据,导致每次请求都访问数据库,增加数据库的负载,并且无法获得有效的缓存
布隆过滤器
所有可能的查询参数以hash形式存储,不符合则丢弃,避免对底层存储系统的查询压力
缓存空对象
存储层不命中后,即使返回的空对象也将其存储,并设置过期时间,之后再访问这个数据将会从缓存中获取,保护后端数据源
缓存雪崩
Redis缓存雪崩(Cache Avalanche):缓存中的大量数据同时过期或者缓存服务器宕机,导致大量请求直接访问数据库,造成数据库瞬时压力过大,甚至引起数据库崩溃
解决方案:
- 高可用:系统能够在长时间运行过程中保持正常的运行状态,即系统具备持续稳定可用的能力。在高可用系统中,系统的服务能够始终对外提供服务,不会因为单点故障或异常情况而导致系统不可用
- 限流降级:限流降级是一种在系统高负载或异常情况下,通过限制请求的访问量或降低服务质量,保证系统的稳定性和可用性的策略
- 数据预热:系统低峰期或缓存数据过期前,提前主动加载缓存数据,使其重新生成或刷新缓存,避免大量请求同时落到数据库上
🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——
点赞
👍收藏
⭐️评论
📝