虛驚一場,差點掛在美團三面,罪魁禍首居然竟是“Redis”?
在找作業的程序中,對于 Redis 技術知識的掌握已經成為必須的技能,美團面試常常就會被問到Redis相關知識,而這次我就差點掛在了美團3面,面試官連問我以下幾個Redis的問題,然后就卡殼了...
- redis了解嗎?Redis key 的過期策略Redis了解嗎?你說說怎么用redis實作分布式鎖?
- Redis常用資料結構及底層資料結構實作
- 如何解決 Redis 的并發競爭 Key 問題
- 如何保證快取與資料庫雙寫時的資料一致性?
- Redis 持久化有哪幾種方式,怎么選?
- Redis 的 zset 怎么實作的?
- Redis 主從同步是怎樣的程序?
- ... ...(剩下的不太記得了...為此面試完回來針Redis專門做了一個大總結)

01 Redis面試問題常見劃分(6個部分,附帶完整的答案決議)
第一部分:Redis 的概念理解 第二部分:Redis 資料結構與指令 第三部分:Redis 高并發處理策略 第四部分:Redis 集群結構以及設計理念 第五部分:Redis 快取管理與持久化機制 第六部分:Redis 應用場景設計 注意:前面例舉了所有的問題,在先不看決議的條件下,可先自行試水,,決議在最后,,
筆記是全程手寫出來的,希望大家拿到筆記后別丟進收藏夾吃灰!一鍵三連+評論,然后添加VX(rxh8515)即可免費領取
1.1 Redis面試問題:第一部分:Redis 的概念理解
- 什么是 Redis?
- Redis 的特點有哪些?
- Memcache 與 Redis 的區別都有哪些?
- Redis 相比 Memcached 有哪些優勢?
- 如何實作本地快取?請描述一下你知道的方式
- Redis 通訊協議是什么?有什么特點?
1.2 Redis面試問題:第二部分:Redis 資料結構與指令

- Redis 支持的資料型別
- Redis 常用的命令有哪些?
- 一個字串型別的值能存盤最大容量是多少?
- Redis 各個資料型別最大存盤量分別是多少?
- 請介紹一下 Redis 的資料型別 SortedSet(zset)以及底層實作機制?
- Redis 事務相關命令有哪些?
- 什么是 Redis 事務?原理是什么?
- Redis 事務的注意點有哪些?
- Redis 為什么不支持回滾?
- 請介紹一下 Redis 的 Pipeline(管道),以及使用場景
- 請說明一下 Redis 的批量命令與 Pipeline 有什么不同?
- 請介紹一下 Redis 的發布訂閱功能
- Redis 的鏈表資料結構的特征有哪些?
- 請介紹一下 Redis 的 String 型別底層實作?
- Redis 的 String 型別使用 SSD 方式實作的好處?
- 設定鍵的生存時間和過期時間有哪些命令?
1.3 Redis面試問題:第二部分:第三部分:Redis 高并發處理策略
- 為什么 Redis 需要把所有資料放到記憶體中?
- Redis 是單執行緒的嗎?
- Redis 為什么設計成單執行緒的?
- 什么是快取穿透?怎么解決?
- 什么是快取雪崩? 怎么解決?
- 快取的更新策略有幾種?分別有什么注意事項?
- 請介紹幾個可能導致 Redis 阻塞的原因
- 怎么去發現 Redis 阻塞例外情況?
1.4 Redis面試問題:第二部分:第四部分:Redis 集群結構以及設計理念

- Redis 集群架構模式有哪幾種?
- Redis 集群最大節點個數是多少?
- Redis 集群的主從復制模型是怎樣的?
- 請介紹一下 Redis 集群實作方案
- Redis 集群會有寫操作丟失嗎?為什么?
- Redis 慢查詢是什么?通過什么配置?
- Redis 的慢查詢修復經驗有哪些?怎么修復的?
- 如何優化 Redis 服務的性能?
- Redis 的主從復制模式有什么優缺點?
- Redis sentinel(哨兵)模式優缺點有哪些?
- 如何設定 Redis 的最大連接數?查看 Redis 的最大連接數?查看 Redis 的當前
- 介紹一些 Redis 常用的安全設定?
1.5 Redis面試問題:第二部分:第五部分:Redis 快取管理與持久化機制

- Redis 持久化機制有哪些?
- Redis 持久化機制 AOF 和 RDB 有哪些不同之處?
- 請介紹一下 RDB 持久化機制的優缺點
- 請介紹一下 AOF 持久化機制的優缺點
- 如果 AOF 檔案的資料出現例外, Redis 服務怎么處理?
- 常見的淘汰演算法有哪些?
- Redis 淘汰策略有哪些?
- Redis 快取失效策略有哪些?
- Redis 如何做記憶體優化?
- 什么是 bigkey? 有什么影響?
- 怎么發現 bigkey?
- Redis 的記憶體消耗分類有哪些?記憶體統計使用什么命令?
- 簡單介紹一下 Redis 的記憶體管理方式有哪些?
- 如何設定 Redis 的記憶體上限?有什么作用?
- Redis 報記憶體不足怎么處理?
1.6 Redis面試問題:第六部分:Redis 應用場景設計
- Redis 適用場景有哪些?
- Redis 常用的業務場景有哪些?
- Redis 支持的 Java 客戶端有哪些? 簡單說明一下特點,
- 請簡單描述一下 Jedis 的基本使用方法?
- Jedis 連接池鏈接方法有什么優點?
- 什么是分布式鎖?有什么作用?
- 分布式鎖可以通過什么來實作?
- 介紹一下分布式鎖實作需要注意的事項?
- Redis 怎么實作分布式鎖?
- 快取命中率表示什么?
- 怎么提高快取命中率?
- 請介紹一下 Spring 注解快取
總共是從Redis的概念理解、資料結構與指令、高并發處理策略、集群結構以及設計理念、快取管理與持久化機制、應用場景設計等六大部分整理了以上的70高頻問,答案解析總共是有25頁(如下圖所示),篇幅有限沒法全部在文章中寫上(后面還有手寫筆記等),但可分享給需要的朋友,點擊下方卡片,即可獲取免費下載方式!
Redis總結免費下載地址(點擊皆可):面試決議+手寫筆記+進階pdf


02 一份純手寫的Redis筆記
這是從朋友那里拿過來的,看了之后感徑訓是挺不錯的,整個筆記分為五個部分: 第一部分:Redis基礎篇 第二部分:Redis資料結構篇 第三部分:Redis持久化篇 第四部分:Redis集群篇 第五部分:Redis的其他問題
2.1 第一部分:Redis基礎篇
- 什么是Redis ?mRedis優缺點
- 為什么要用快取?為什么使用Redis?
- 使用快取會出現什么問題?
- Redis為什么早期版本選擇單執行緒?
- Redis為什么這么快?

2.2 第二部分:Redis資料結構篇
- Redis常用資料結構及實作?
- Redis 的 SDS 和C中字串相比的優勢?
- 字典是如何實作的? Rehash了解嗎?
- 跳躍表是如何實作的?原理?
- HyperLogLog有了解嗎?
- 布隆過濾器有了解嗎?
- GeoHash了解嗎?
- 壓縮串列了解嗎?
- 快速串列quicklist了解嗎?
- Stream結構有了解嗎?

2.3 第三部分:Redis持久化篇
- 什么是持久化?
- Redis中的兩種持久化方式?
- RDB和AOF各自有什么優缺點?
- 兩種方式如何選擇?
- Redis 的資料恢復

2.4 第四部分:Redis集群篇
- 主從同步了解嗎?
- 哨兵模式了解嗎?
- Redis集群使用過嗎?原理?
- 集群中資料如何磁區?
- 節點之間的通信機制了解嗎?
- 集群資料如何存盤的有了解嗎?

2.5 第五部分:Redis的其他問題
- Redis 如何實作分布式鎖?
- Redis過期鍵的洗掉策略?
- Redis的淘汰策略有哪些?
- Redis常見性能問題和解決方案?

03 Redis進階必看:《Redis實戰》+《Redis設計與實作》
3.1 《Redis實戰》
深入淺出地介紹了Redis的5種資料型別,并通過多個實用示例展示了Redis用法,除此之外,還講述了Redis 的優化方法以及擴展方法,對于學習和使用Redis來說不可多得的參考筆記,

本筆記一共由三個部分組成:
第一部分 入門:對Redis進行了介紹,說明了Redis 的基本使用方法、它擁有的5種資料結構以及操作這5種資料結構的命令,并講解了如何使用Redis去構建文章聚合網站、cookie、購物車、網頁快取、資料庫行快取等一系列程式;
- 第1章 初識Redis
- 第2章 使用Redis構建Web應用
第二部分 核心概念: 對Redis命令進行了更詳細的介紹,并展示了如何使用Redis去構建更為復雜的輔助工具和應用程式,并在最后展示了如何使用Redis去構建一個簡單的社交網站;
- 第3章 Redis命令
- 第4章 資料安全與性能保障
- 第5章 使用Redis構建支持程式
- 第6章 使用Redis構建應用程式組件
- 第7章 基于搜索的應用程式
- 第8章 構建簡單的社交網站
第三部分 進階內容:對Redis用戶經常會遇到的一些問題進行了介紹,講解了降低Redis記憶體占用的方法、擴展Redis性能的方法以及使用Lua語言進行腳本編程的方法;
- 第9章 降低記憶體占用
- 第10章 擴展Redis
- 第11章 Redis的Lua腳本編程


3.2 《Redis設計與實作》
全面而完整地講解了Redis的內部機制與實作方式,對Redis的大多數單機功能以及所有多機功能的實作原理進行了介紹,展示了這些功能的核心資料結構以及關鍵的演算法思想,圖示豐富,描述清晰,并給出大量參考資訊,通過閱讀,讀者可以快速、有效地了解Redis的內部構造以及運作機制,更好、更高效地使用Redis,

本筆記主要分為四大部分:
第一部分“資料結構與物件”:介紹了Redis 中的各種物件及其資料結構,并說明這些資料結構如何影響物件的功能和性能;
- 第二章 簡單動態字串
- 第三章 鏈表
- 第四章 字典
- 第五章 跳躍表
- 第六章 整數集合
- 第七章 壓縮串列
- 第八章 物件

第二部分“單機資料庫的實作”:對Redis實作單機資料庫的方法進行了介紹,包括資料庫、RDB持久化、AOF持久化、事件等;
- 第九章 資料庫
- 第十章 RDB持久化
- 第十一章 AOF持久化
- 第十二章 事件
- 第十三章 客戶端
- 第十四章 服務器

第三部分“多機資料庫的實作”:對Redis的Sentinel、復制、集群三個多機功能進行了介紹;
- 第十五章 復制
- 第十六章 Sentinel
- 第十七章 集群

第四部分“獨立功能的實作對Redis”: 中各個相對獨立的功能模塊進行了介紹,涉及發布與訂閱、事務、Lua腳本、排序、二進制位陣列、慢查詢日志、監視器等;
- 第十八章 發布與訂閱
- 第十九章 事務
- 第二十章 Lua腳本
- 第二十一章 排序
- 第二十二章 二進制位陣列
- 第二十三章 慢查詢日志
- 第二十四章 監視器

總而言之,面試官問來問去,問的那些Redis知識點也就這么多吧,許是我復習的不夠到位,知識點掌握不夠熟練,所以面試才會卡殼,將這些Redis面試知識決議以及我整理的一些學習筆記分享出來給大家參考學習,希望你們不要像我一樣(虛驚一場呀~)
更多:全套學習筆記:學習視頻+大廠面試真題+微服務+MySQL+Java+Redis+演算法+網路+Linux+Spring全家桶+JVM+學習筆記圖等等
整理不易,覺得有幫助的朋友可以幫忙點贊分享支持一下小編~
你的支持,我的動力;祝各位前程似錦,offer不斷!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/229253.html
標籤:其他

