首页 > 应用开发 > Java > redis的高并发和高可用方案
单机版的redis支持上万到几万的QPS不等。主要根据你的业务操作的复杂性,redis提供了很多复杂的操作,lua脚本.
redis高并发:主从架构,一主多从,读写分离。一般来说,很多项目其实就足够了,单主用来写入数据,单机几万QPS,多从用来查询数据,多个从实例可以提供每秒10万的QPS。
redis高并发的同时,还需要容纳大量的数据:一主多从,每个实例都容纳了完整的数据,比如redis主就10G的内存量,其实你就最对只能容纳10g的数据量。如果你的缓存要容纳的数据量很大,达到了几十g,甚至几百g,或者是几t,那你就需要redis集群,而且用redis集群之后,可以提供可能每秒几十万的读写并发。
redis高可用:如果你做主从架构部署,其实就是加上sentinal哨兵就可以了,就可以实现,任何一个实例宕机,自动会进行主备切换。
master和salver进行数据的 异步复制。都是写入一个写请求,然后异步的方式,将数据同步到slave。启动slave的时候,它会向master发送一个同步的请求,如果slave是第一次启动,master会做一次全量同步,master后台启动一个线程,生成一个RDB快照,同时还会将接下来所有写命令缓存在内存中。RDB文件生成完毕之后,master会将这个RDB发送给slave,slave会先写入本地磁盘,然后再从本地磁盘加载到内存中。然后master会将内存中缓存的写命令发送给slave,slave也会同步这些数据。
哨兵是redis集群架构中非常重要的一个组件,主要功能如下
(1)集群监控,负责监控redis master和slave进程是否正常工作
(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员
(3)故障转移,如果master node挂掉了,会自动转移到slave node上
(4)配置中心,如果故障转移发生了,通知client客户端新的master地址
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038971/viewspace-3019003/ ,如需转载,请注明出处,否则将追究法律责任。