01.07 2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

我們面試的時候 ,經常會被問這種到問題:

Redis 常用的業務場景有哪些? 什麼是緩存穿透?怎麼解決?什麼是緩存雪崩? 怎麼解決?等等 在找工作的過程中,對於 Redis 技術知識的掌握已經成為必須的技能。Redis相關的問題一直是大廠面試常問到的一個問題,一直是很多面試者的攔路虎,不知道從哪裡下手,今天舉例分析大廠的一些Redis相關的面試真題。和分享我學習Redis相關問題所整理的一些知識點。

阿里面試Redis相關問題(以整理解析)

1.什麼是 Redis 事務?原理是什麼?

Redis 中的事務是一組命令的集合,是 Redis 的最小執行單位,一個事務要麼都執行,要麼都不執行。

Reids 事務保證一個事務內的命令依次執行,而不會被其他命令插入。

Redis 事務的原理是先將屬於一個事務的命令發送給 Redis,然後依次執行這些命令。

2. Redis 常用的命令有哪些?

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

3.什麼是緩存穿透?怎麼解決?

透是指緩存中查詢一個不存在的數據,需要去數據庫中獲取。

如果數據庫也查不到結果,將不會同步到緩存,導致這個不存在數據每次請求都要到數據庫查詢,失去了緩存的意義。

解決方法有兩個:

1. 布隆過濾(Bloom filter)

將所有查詢的參數都存儲到一個 bitmap 中,在查詢緩存之前,先再找個 bitmap 裡面進行驗證。

如果 bitmap 中存在,則進行底層緩存的數據查詢; 如果 bitmap 中不存在查詢參數,則進行攔截,不再進行緩存的數據查詢。

適用範圍:可以用來實現數據字典,進行數據的判重,或者集合求交集

2. 緩存空對象

如果查詢返回的數據為空,仍然把這個空結果進行緩存。那麼再次用相同 key 獲取數據的時候,即使不存在的數據,緩存也可以直接返回空值,避免重複訪問 DB。

緩存空對象有兩個不足之處:

緩存層將存儲更多的鍵值對,如果是惡意的隨機訪問,將造成很多內存空間的浪費。這個不足之處可以通過將這類數據設置很短的過期時間來控制。

DB 與緩存數據不一致。這種可以考慮通過異步消息來進行數據更新的通知,在一定程度上減少這類不一致的時間。

4.怎麼去發現 Redis 阻塞異常情況?

1. 通過應用服務監控發現

當 Redis 阻塞的時候,線上應用服務應該會感知發現。比如說發現 Redis 鏈接超時等。這種就需要應用服務增加對於異常的統計,並針對 Redis 相關的異常,進行報警。

2. 通過 Redis 自身監控系統

藉助 Redis 監控系統發現阻塞問題,當監控系統發現各個監控指標存在異常的時候,發送報警。 指標有:CPU/內存/磁盤等, 慢查詢,命令耗時增加等。

5.Redis 持久化機制 AOF 和 RDB 有哪些不同之處?

兩者的區別:RDB 持久化是指在指定的時間間隔內將內存中的數據集快照寫入磁盤,實際操作過程是 fork 一個子進程,先將數據集寫入臨時文件,寫入成功後,再替換之前的文件,用二進制壓縮存儲。

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

AOF 持久化以日誌的形式記錄服務器所處理的每一個寫、刪除操作,查詢操作不會記錄,以文本的方式記錄,可以打開文件看到詳細的操作記錄。

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

  • 為什麼 Redis 需要把所有數據放到內存中?
  • Redis 是單線程的嗎?
  • Redis 為什麼設計成單線程的?
  • 什麼是緩存雪崩? 怎麼解決?
  • 緩存的更新策略有幾種?分別有什麼注意事項?
  • 請介紹幾個可能導致 Redis 阻塞的原因
  • Redis 集群架構模式有哪幾種?
  • Redis 集群最大節點個數是多少?
  • Redis 集群的主從複製模型是怎樣的?
  • 請介紹一下 Redis 集群實現方案
  • Redis 集群會有寫操作丟失嗎?為什麼?
  • Redis 慢查詢是什麼?通過什麼配置?

只是展示的一部分Redis相關的面試題集,一部分解析,更多的Redis面試整理解析可以看整理的《大廠Redis高頻面試75題解析文檔》,有需要的朋友麻煩幫忙轉發後私信回覆我【面試】即可獲取資料的免費領取方式!

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

我的Redis學習筆記

對於Redis盲目的學很浪費時間還犯愁,這裡有整理一份Redis學習路線圖(有Xmind源文件筆記)裡面有每個知識點的筆記整理!今天通過我整理的Redis學習路線.xmind給大家分析Redis需要掌握的一些核心知識點。

需要整個Redis學習導圖和核心知識點的朋友可以轉發文章+私信【面試】即可獲取資料的免費領取方式!

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

數據結構

  • 五種數據結構類型
  • HyperLogLog
  • redis命令大全
2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

Redis的過期策略和內存淘汰策略

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

Redis集群(Redis cluster)

  • 為什麼使用集群
  • 數據分佈
  • Redis Cluster基本概念
2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

主從複製

  • 實現主從複製的兩種方式
  • 複製過程
  • 數據同步
  • 主從節點心跳鏈接
  • 缺點
2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

Redis持久化

  • RDB(Redis DataBase )
  • AOF(Append Only File)
  • 如何選擇持久化方案
  • fork阻塞:CPU的阻塞
  • AOF追加阻塞:硬盤的阻塞
2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了

還有更多內容都包含這個Xmind源文件裡了

  • redis.conf
  • nosql數據庫
  • 哨兵模式
  • 發佈訂閱
  • Redis實現分佈式鎖

我整理的Redis學習視頻及筆記文檔

需要這些Redis學習資料的朋友可以轉發文章+私信【面試】即可獲取資料的免費領取方式!

2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了


2020去大廠Java崗面試搞不清這些Redis知識點,基本等通知了


分享到:


相關文章: