一、最基本問題
1、如何保證redis的高併發和高可用?redis的主從複製原理能介紹一下嘛?redis的哨兵原理能介紹一下嘛?。面試官心理:其實問這個問題,主要是考考你,redis單機能承載多高併發?如果單機扛不住如何擴容來抗更多的併發?redis會不會掛?既然redis會掛,那怎麼保證redis是高可用的?
二、redis高併發跟整個系統高併發之間的關係
1、redis:你要搞高併發的話,不可避免,要把底層的快取搞的很好。
2、mysql:高併發也是通過一系列複雜的分庫分表來實現的。訂單系統,業務要求的,qps到幾萬,比較高了。
要做一些電商的商品詳情頁,真正的超高併發,qps上十萬,甚至是百萬。一秒鐘幾百萬的請求量光靠redis是不夠的,但是redis是整個大型的快取架構中非常重要的乙個環節。
三、如果redis要支撐10萬+的併發,應該如何做
單機的redis幾乎不可能達到10萬的qps。除非一些特殊的情況,比如你的機器效能特別好,配置特別高,物理機維護做的特別好,而且你整體的操作不是很複雜。單機一般是幾萬。
讀寫分離,一般來說都是用來支撐讀高併發的。寫的請求時比較少的。可能寫請求也就每秒幾千。
四、redis replication以及master持久化對主從架構的安全意義
五、redis 主從架構的核心原理
六、redis主從架構如何做到99.99%的高可用
1、系統處於不可用
2、系統處於高可用
3、redis的不可用
4、redis的高可用
七、哨兵架構的相關基礎知識
八、總結
1、redis高併發:主從架構,一主多從,一般來說,很多專案就足夠了。單主用來寫入資料。單機幾萬qps。多從用來查詢資料,多個從例項可以提供每秒10萬的qps。
2、redis高併發的同時,還需要容納大量的資料。一主多從,每個例項都容納了完整的資料。比如redis主就10g的記憶體量。其實你就最多只能容納10g的資料量。如果你的快取要容納的資料量很大,達到了幾十g。甚至幾百g,或者幾t。你就需要用redis集群。而且用redis集群之後,可以提供每秒幾十萬的讀寫請求。
3、redis高可用:如果你做主從架構部署。其實就是加上哨兵就可以啦。就可以實現,任意乙個例項宕機,自動會進行主備切換。
Mysql面試常問問題
資料庫基礎知識 1 為什麼要使用資料庫 2 什麼是sql?3 什麼是mysql?4 資料庫三大正規化是什麼 5 mysql有關許可權的表都有哪幾個 6 mysql的binlog有有幾種錄入格式?分別有什麼區別?資料型別 1 mysql有哪些資料型別 引擎1 mysql儲存引擎myisam與innod...
php 面試常問問題
1.看看簡歷,會問一些過去做的專案的使用者量 pv 吞吐量 相關難點和解決方法等 2.資料庫設計經驗,為什麼進行分表?分庫?一般多少資料量開始分表?分庫?分庫分表的目的?什麼是資料庫垂直拆分?水平拆分?分割槽等等?可以舉例說明 3.資料庫優化有哪些?分別需要注意什麼?4.web開發方面會遇到哪些快取...
iOS 面試常問問題總結
1.除了mvc模式你還熟悉什麼設計模式 模式 當乙個類的某些功能需要由別的類實現,但是又不確定具體是哪個類實現的 單例模式 確保程式執行期,某個類只有乙份例項,用於進行資源共享 工廠模式 工廠模式建立的例項,多與proxy模式配合,建立可替代的類,一般用於基礎控制項的建立 觀察者模式 一般為mode...