如何保證 Redis 的高併發和高可用?Redis 的主從複製原理能介紹一下麼?Redis 的哨兵原理能介紹一下麼?面試
其實問這個問題,主要是考考你,Redis 單機能承載多高併發?若是單機扛不住如何擴容扛更多的併發?Redis 會不會掛?既然 Redis 會掛那怎麼保證 Redis 是高可用的?sql
其實針對的都是項目中你確定要考慮的一些問題,若是你沒考慮過,那確實你對生產系統中的問題思考太少。segmentfault
若是你用 Redis 緩存技術的話,確定要考慮如何用 Redis 來加多臺機器,保證 Redis 是高併發的,還有就是如何讓 Redis 保證本身不是掛掉之後就直接死掉了,即 Redis 高可用。緩存
因爲此節內容較多,所以,會分爲兩個小節進行講解。架構
Redis 實現高併發主要依靠主從架構,一主多從,通常來講,不少項目其實就足夠了,單主用來寫入數據,單機幾萬 QPS,多從用來查詢數據,多個從實例能夠提供每秒 10w 的 QPS。高併發
若是想要在實現高併發的同時,容納大量的數據,那麼就須要 Redis 集羣,使用 Redis 集羣以後,能夠提供每秒幾十萬的讀寫併發。源碼分析
Redis 高可用,若是是作主從架構部署,那麼加上哨兵就能夠了,就能夠實現,任何一個實例宕機,能夠進行主備切換。性能
本文的重點是你有沒有收穫與成長,其他的都不重要,但願讀者們能謹記這一點。同時我通過多年的收藏目前也算收集到了一套完整的學習資料,包括但不限於:分佈式架構、高可擴展、高性能、高併發、Jvm性能調優、Spring,MyBatis,Nginx源碼分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多個知識點高級進階乾貨,但願對想成爲架構師的朋友有必定的參考和幫助