redis面試總結

2021-09-23 22:37:47 字數 1635 閱讀 2403

1.redis怎麼保證原子性

redis 是單執行緒的事件迴圈,乙個操作執行完了才執行下乙個操作

2.redis常用的資料結構/資料型別(高頻問點,熟!!!)

字串(string)、列表(list)、無序集合(zset)、有序集合(set)、雜湊表(hash)

3.redis執行緒安全嗎

redis採用了執行緒封閉的觀念,把任務封閉在乙個執行緒,自然避免了執行緒安全問題,不過對於需要依賴多個redis操作的復合操作來說,依然需要鎖,而且有可能是分布式鎖。

4.redis事務支援一致性嗎

5.redis使用場景

1、熱點資料的快取:由於redis訪問速度塊、支援的資料型別比較豐富,所以redis很適合用來儲存熱點資料。

2、限時業務的運用:redis中可以使用expire命令設定乙個鍵的生存時間,到時間後redis會刪除它。利用這一特性可以運用在限時的優惠活動資訊、手機驗證碼等業務場景。

6.redis持久化:這個是重點!!!!

繼續牛客第二頁,在收藏裡。

7 redis 和 資料庫是怎麼保持一致性的(要詳細分析)

8 redis事務

9 redis快取淘汰策略

10.redis為什麼快(如果做到高併發)?

11.redis中一些常用的指令

12.redis主從同步

13.redis快取一致

14.redis實現原理,為什麼是單執行緒

15.redis實現分布式鎖

16.redis如何保證高併發

單機的redis幾乎不太可能說qps超過10萬+,一般在幾萬。redis通過主從架構,實現讀寫分離,主節點負責寫,並將資料同步給其他從節點,從節點負責讀,從而實現高併發。如果你的快取要容納的資料量很大,達到了幾十g,甚至幾百g,或者是幾t,那你就需要redis集群,而且用redis集群之後,可以提供可能每秒幾十萬的讀寫併發。

17.漸進式rehash

redis中的字典使用雜湊表作為底層實現。字典包含兩個陣列ht[0]和ht[1],陣列中的每乙個項都是乙個雜湊表,一般情況下,字典只使用ht[0],但是當ht0中的資料超過負載因子定義的閾值上限的時候,就需要吧ht0的資料轉移到ht1,然後將ht0清空。ht0的資料轉移到ht1要進行rehash重新計算hash值確定位置,而這個操作並不是一次性進行的,因為這樣會影響速度,redis將rehash分在了不同的步驟中,通過維護乙個rehashidx來記錄rehash在ht0中進行到了哪個位置,當index為-1時表示rehash結束。

18.redis哨兵

面試總結 快取Redis

以下是面試以來被問到過的題,當然也包括一些沒被問的題,有備無患。redis跳表 鍊錶加上多級索引的結構,稱為跳表,應用在redis zset資料結構當中。zset要求資料唯一有序,且支援插入刪除。實現跳表包含zskiplistnode和skiplist兩個結構定義。zskiplistnode表示跳表...

redis面試題總結

1 速度快,因為資料存在記憶體中,類似於hashmap,hashmap的優勢就是查詢和操作的時間複雜度都是o 1 2 支援豐富資料型別,支援string,list,set,sorted set,hash 3 支援事務,操作都是原子性,所謂的原子性就是對資料的更改要麼全部執行,要麼全部不執行 4 豐富...

面試 Redis面試常見問題總結

redis採用的是基於記憶體的採用的是單程序單執行緒模型的kv資料庫,由c語言編寫。官方提供的資料是可以達到100000 的qps。這個資料不比採用單程序多執行緒的同樣基於記憶體的kv資料庫memcached差。redis快的主要原因是 完全基於記憶體 資料結構簡單,對資料操作也簡單 使用多路 i ...