Redis吊打面試官的經典面試題整理

2021-10-23 11:00:15 字數 1659 閱讀 1611

1、redis為什麼是key,value的,為什麼不是支援sql的?

這題第一眼看到有點懵逼

選擇key-value的原因:key-value簡單粗暴,使用方便?效率更佳?

為什麼不支援sql:

因為redis的記憶體模型是乙個hashtable,不使用表來儲存資料,也不會預定義或強制要求使用者對redis儲存的不同資料進行關聯。

2、redis是多執行緒還是單執行緒?

redis中io多路復用器模組是單執行緒執行,事件處理器也是單執行緒執行,兩個執行緒不一樣。所以實際redis應該是單程序多執行緒,只是不同的模組都用的單執行緒實現。

兩個維度來舉例:

(1)若是client傳送命令到server的話,server處理命令是單執行緒逐條進行的。

(2)server內部可以是多執行緒的,比如aof持久化,假設策略每秒,那就是再單獨開啟乙個執行緒去執行aof檔案持久化操作,這就是多執行緒了。

3、redis的持久化開啟了rdb和aof下重啟服務是如何載入的?

優先aof,aof沒找到的話再找rdb,因為aof檔案的資料要全於rdb。

徹底搞懂redis持久化之rdb原理

徹底搞懂redis持久化之aof原理

redis持久化之rdb與aof對比總結

4、redis如果做集群該如何規劃?akf/cap如何實現和設計?

參考redis各種部署方式的優缺點來決定。

如果希望快速部署,那麼可以考慮單節點部署方式。

如果只需要考慮可靠性,那麼可以考慮主從複製模式。

如果想要保證高可用,不需要考慮儲存成本可以考慮哨兵模式。

如果想提高集群的擴充套件性和可用性,不要求保證資料的強一致性,且沒有批量操作,那麼可以考慮集群模式。

大白話**結合的方式講解什麼是cap

akf分為三個維度:xyz軸,具體google…

5、10萬使用者一年365天的登入情況如何用redis儲存,並快速檢索任意時間窗內的活躍使用者?

bitmap,直接看下文會大徹大悟。

redis的bitmap從基礎到業務

6、redis的5種value型別你用過幾種,能舉例嗎?

string、list、set、sorted_set、hash,大家都懂,不想寫一堆廢話來舉例。說下原理吧

string:int、raw、embstr

list:ziplist、linkedlist

hash:ziplist、hashtable

set:intset、hashtable

sorted set:ziplist、skiplist+dict

7、100萬併發4g資料,10萬併發400g資料,如何設計redis儲存方式?

我膚淺的理解為:

前者用主從+哨兵進行高可用,加快讀請求的速度,減輕單節點的壓力。

一文掌握redis的主從複製原理到實戰

一文掌握redis的哨兵sentinel原理到實戰

後者用集群來均分這400g資料。 但是感覺不是面試官想要的答案

Redis吊打面試官的經典面試題整理

1 redis為什麼是key,value的,為什麼不是支援sql的?這題第一眼看到有點懵逼 選擇key value的原因 key value簡單粗暴,使用方便?效率更佳?為什麼不支援sql 因為redis的記憶體模型是乙個hashtable,不使用表來儲存資料,也不會預定義或強制要求使用者對redi...

Redis吊打面試官的經典面試題整理

1 redis為什麼是key,value的,為什麼不是支援sql的?這題第一眼看到有點懵逼 選擇key value的原因 key value簡單粗暴,使用方便?效率更佳?為什麼不支援sql 因為redis的記憶體模型是乙個hashtable,不使用表來儲存資料,也不會預定義或強制要求使用者對redi...

吊打面試官 hashMap

hashmap 知識點 hashmap是什麼?hashmap是用來儲存key value鍵值對的集合類 它具有儲存效率高,查詢速度快的特點。hashmap的底層實現原理是什麼?hashmap底層是基於 陣列 鍊錶 紅黑樹 結構來實現的,陣列元素採用node節點來儲存key value鍵值對的資訊。h...