欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis如何做到高并发和高可用

程序员文章站 2022-03-26 14:49:28
1、高并发单机的redis的QPS一般在几万(官方说法可以达到10万)。所以对于十万、百万甚至千万级别的QPS,单机的redis肯定不能支撑这么大的访问量。解决此类高并发问题,可以采用redis的主从架构模式。主从架构:一主多从实现读写分离,主节点负责写,并将数据同步给其他从节点,从节点负责读,从而实现高并发。但是,在主从架构中,每个redis实例都容纳了所有的完整数据,比如redis......

1、高并发

单机的redis的QPS一般在几万(官方说法可以达到10万)。所以对于十万、百万甚至千万级别的QPS,单机的redis肯定不能支撑这么大的访问量。解决此类高并发问题,可以采用redis的主从架构模式。

主从架构:一主多从实现读写分离,主节点负责写,并将数据同步给其他从节点,从节点负责读,从而实现高并发。

但是,在主从架构中,每个redis实例都容纳了所有的完整数据,比如redis主实例如果有10G的内存容量的话,表示最多只能容纳10g的数据量。如果要缓存更大的数据量,比如几十g,甚至几百g,或者是几t,此时就需要使用redis集群,而且用redis集群之后,可以提供每秒几十万的读写并发。(也就是说,使用redis集群,一方面可以扩展整个redis缓存系统中可以存储的数据量;另一方面也可以提高系统的并发性能)

 

2、高可用

(1)Sentinel哨兵

      如果你做主从架构部署,只要加上哨兵就可以实现任何一个redis实例宕机,自动进行主备切换,保证整个redis系统持续对外提供服务,达到高可用要求。Redis Sentinel是为Redis提供了高可用方案。从实践方面来说,使用Redis Sentinel可以创建一个无需人为干预就可以预防某些故障的Redis环境。Redis Sentinel设计为分布式的架构,运行多个Sentinel进程来共同合作的,当多个Sentinel判定给定的master无法再继续提供服务,就会执行故障检测,从而降低误报的可能性。

Redis Sentinel功能:

Redis Sentinel在Redis高可用方案中主要作用有如下功能:

  • 监控
    Sentinel会不断的检查master和slave是否像预期那样正常运行
  • 通知
    通过API,Sentinel能够通知系统管理员、程序监控的Redis实例出现了故障
  • 自动故障转移
    如果master不像预想中那样正常运行,Sentinel可以启动故障转移过程,其中的一个slave会提成为master,其它slave会重新配置来使用新的master,使用Redis服务的应用程序,当连接时,也会被通知使用新的地址。
  • 配置提供者
    Sentinel可以做为客户端服务发现的认证源:客户端连接Sentinel来获取目前负责给定服务的Redis master地址。如果发生故障转移,Sentinel会报告新的地址。

(2)redis集群

 

3、参考博客

https://blog.csdn.net/ssllkkyyaa/article/details/84107474

本文地址:https://blog.csdn.net/wangqsse/article/details/105853308