BATJ面試redis靈魂36問,你這麼回答,面試官一定對你刮目相看

馬士兵老師發表於2020-11-17

前言

說到面試,那就要好好準備下,不準備充分的面試,完全是浪費時間,更是對自己的不負責。那麼面試的知識點是哪些呢?

經過大多數粉絲面試過後的反饋,Java面試重點如下:

資料結構與演算法,JVM記憶體結構、垃圾回收器、回收演算法、GC、併發程式設計相關(多執行緒、執行緒池等)、NIO/BIO、效能優化、設計模式、Spring框架:分散式相關:Redis、一致Hash演算法、分散式儲存、負載均衡等,微服務以及Docker容器等。在這由於文字很多,我總結了java面試所涉及到的常問範圍及常問面試題免費分享給大家,文末有獲取地址!

今天下面就列舉的是Redis的相關面試問題,看看你是否能答出來。

Redis高階面試專題

 

  1. 什麼是 Redis?簡述它的優缺點?
  2. Redis與memcached相比有哪些優勢?
  3. Redis支援哪幾種資料型別?
  4. Redis主要消耗什麼物理資源?
  5. Redis有哪幾種資料淘汰策略?
  6. Redis官方為什麼不提供Windows版本?
  7. 一個字串型別的值能儲存最大容量是多少?
  8. 為什麼Redis需要把所有資料放到記憶體中?
  9. Redis叢集方案應該怎麼做?都有哪些方案?
  10. Redis叢集方案什麼情況下會導致整個叢集不可用?
  11. MySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料?
  12. Redis有哪些適合的場景?
  13. Redis支援的Java客戶端都有哪些?官方推薦用哪個?
  14. Redis和Redisson有什麼關係?
  15. Jedis與Redisson對比有什麼優缺點?
  16. 說說Redis雜湊槽的概念?
  17. Redis叢集的主從複製模型是怎樣的?
  18. Redis叢集會有寫操作丟失嗎?為什麼?
  19. Redis叢集之間是如何複製的?
  20. Redis叢集最大節點個數是多少?
  21. Redis叢集如何選擇資料庫?
  22. Redis中的管道有什麼用?
  23. 怎麼理解Redis事務?
  24. Redis事務相關的命令有哪幾個?
  25. Rediskey的過期時間和永久有效分別怎麼設定?
  26. Redis如何做記憶體優化?
  27. Redis回收程式如何工作的?
  28. 加鎖機制
  29. 鎖互斥機制
  30. watchdog自動延期機制
  31. 可重入加鎖機制
  32. 釋放鎖機制
  33. 上述Redis分散式鎖的缺點
  34. 使用過Redis分散式鎖麼,它是怎麼實現的?
  35. 使用過Redis做非同步佇列麼,你是怎麼用的?有什麼缺點?
  36. 什麼是快取穿透?如何避免?什麼是快取雪崩?何如避免?

面試題答案

1、什麼是 Redis?簡述它的優缺點?

Redis的全稱是:RemoteDictionary.Server,本質上是一個Key-Value型別的記憶體資料庫,很像memcached,整個資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料flush到硬碟上進行儲存。

因為是純記憶體操作,Redis的效能非常出色,每秒可以處理超過10萬次讀寫操作,是已知效能最快的Key-ValueDB。

Redis的出色之處不僅僅是效能,Redis最大的魅力是支援儲存多種資料結構,此外單個value的最大限制是1GB,不像memcached只能儲存1MB的資料,因此Redis可以用來實現很多有用的功能。比方說用他的List來做FIFO雙向連結串列,實現一個輕量級的高效能訊息佇列服務,用他的Set可以做高效能的tag系統等等。

另外Redis也可以對存入的Key-Value設定expire時間,因此也可以被當作一個功能加強版的memcached來用。Redis的主要缺點是資料庫容量受到實體記憶體的限制,不能用作海量資料的高效能讀寫,因此Redis適合的場景主要侷限在較小資料量的高效能操作和運算上。

2、Redis與memcached相比有哪些優勢?

  • memcached所有的值均是簡單的字串,redis作為其替代者,支援更為豐富的資料型別
  • redis的速度比memcached快很多redis的速度比memcached快很多
  • redis可以持久化其資料redis可以持久化其資料

3、Redis支援哪幾種資料型別?

String、List、Set、SortedSet、hashes

4、Redis主要消耗什麼物理資源?

記憶體。

5、Redis有哪幾種資料淘汰策略?

  1. noeviction:返回錯誤當記憶體限制達到,並且客戶端嘗試執行會讓更多記憶體被使用的命令。
  2. allkeys-lru:嘗試回收最少使用的鍵(LRU),使得新新增的資料有空間存放。
  3. volatile-lru:嘗試回收最少使用的鍵(LRU),但僅限於在過期集合的鍵,使得新新增的資料有空間存放。
  4. allkeys-random:回收隨機的鍵使得新新增的資料有空間存放。
  5. volatile-random:回收隨機的鍵使得新新增的資料有空間存放,但僅限於在過期集合的鍵。
  6. volatile-ttl:回收在過期集合的鍵,並且優先回收存活時間(TTL)較短的鍵,使得新新增的資料有空間存放。

由於篇幅限制,太長看下去會很乏味,也會影響閱讀體驗,下面展現將以圖片形式展示。獲取原檔案以及更多資源

需要獲取得話麻煩一鍵三連之後看下圖小助理的微信:(vip1024x)新增即可免費獲取到哦

對文章中學習腦圖感興趣的可以

需要獲取得話麻煩一鍵三連之後看下圖小助理的微信:(vip1024x)新增即可免費獲取到哦

需要獲取得話麻煩一鍵三連之後看下圖小助理的微信:(vip1024x)新增即可免費獲取到哦

 

相關文章