在找工作的過程中,對於 Redis 技術知識的掌握已經成為必須的技能。美團面試常常就會被問到Redis相關知識,而這次我就差點倒在了美團3面,面試官連問我以下幾個Redis的問題,然後就卡殼了...
- redis瞭解嗎?你說說怎麼用redis實現分佈式鎖?
- Redis常用數據結構及底層數據結構實現
- 如何解決 Redis 的併發競爭 Key 問題
- 如何保證緩存與數據庫雙寫時的數據一致性?
- ... ...(剩下的不太記得了...為此面試完回來針Redis專門做了一個面試問題大總結)
01 Redis面試問題常見劃分(6個部分)
- Redis 的概念理解
- Redis 基本數據結構詳解
- Redis 高併發問題策略
- Redis 集群結構以及設計理念
- Redis 持久化機制
- Redis 應用場景設計
- Redis學習路線圖(xmind)
02 涉及到的面試題目如下
- Redis 的特點有哪些?
- Redis 支持的數據類型
- 為什麼 Redis 需要把所有數據放到內存中?
- Redis 適用場景有哪些?
- Redis常用的業務場景有哪些?
- Mem*** 與 Redis 的區別都有哪些?
- Redis 相比 mem***d 有哪些優勢?
- Redis常用的命令有哪些?
- Redis 為什麼設計成單線程的?
- 一個字符串類型的值能存儲最大容量是多少?
- Redis各個數據類型最大存儲量分別是多少?
- Redis 持久化機制有哪些? 區別是什麼?
- 請介紹一下 RDB, AOF兩種持久化機制的優缺點?
- 什麼是緩存穿透?怎麼解決?
- 什麼是緩存雪崩? 怎麼解決?
- Redis支持的額Java客戶端有哪些? 簡單說明一下特點。
- 緩存的更新策略有幾種?分別有什麼注意事項?
- 什麼是分佈式鎖?有什麼作用?
- 分佈式鎖可以通過什麼來實現?
- 介紹一下分佈式鎖實現需要注意的事項?
- Redis怎麼實現分佈式鎖?
- 常見的淘汰算法有哪些?
- Redis 淘汰策略有哪些?
- Redis 緩存失效策略有哪些?
- Redis 的持久化機制有幾種方式?
- 請介紹一下持久化機制 RDB, AOF的優缺點分別是什麼?
- Redis 是單線程的嗎?
- Redis 通訊協議是什麼?有什麼特點?
- 請介紹一下 Redis 的數據類型 SortedSet(zset) 以及底層實現機制?
- Redis 集群最大節點個數是多少?
- Redis 集群的主從複製模型是怎樣的?
- Redis 如何做內存優化?
- Redis 事務相關命令有哪些?什麼是 Redis 事務?原理是什麼?
- Redis 事務的注意點有哪些?
- Redis 為什麼不支持回滾?
- 請介紹一下 Redis 集群實現方案
- 請介紹一下 Redis 常見的業務使用場景?
- Redis 集群會有寫操作丟失嗎?為什麼?
- 請介紹一下 Redis 的 Pipeline (管道),以及使用場景
- 請說明一下 Redis 的批量命令與 Pipeline 有什麼不同?
- Redis 慢查詢是什麼?通過什麼配置?
- Redis 的慢查詢修復經驗有哪些? 怎麼修復的?
- 請介紹一下 Redis 的發佈訂閱功能
- 請介紹幾個可能導致 Redis 阻塞的原因
- 怎麼去發現 Redis 阻塞異常情況?
- Redis 的內存消耗分類有哪些?內存統計使用什麼命令?
- 簡單介紹一下 Redis 的內存管理方式有哪些?
- 如何設置 Redis 的內存上限?有什麼作用?
- 什麼是 bigkey? 有什麼影響?怎麼發現bigkey?
- 請簡單描述一下 Jedis 的基本使用方法?
- Jedis連接池鏈接方法有什麼優點?
- 冷熱數據表示什麼意思?
- 緩存命中率表示什麼?怎麼提高緩存命中率?
- 如何優化 Redis 服務的性能?
- 如何實現本地緩存?請描述一下你知道的方式
- 請介紹一下 Spring 註解緩存
- 如果 AOF 文件的數據出現異常, Redis服務怎麼處理?
- Redis 的主從複製模式有什麼優缺點?
- Redis sentinel (哨兵) 模式優缺點有哪些?
- Redis 集群架構模式有哪幾種?
- 如何設置 Redis 的最大連接數?查看Redis的最大連接數?查看Redis的當前連接數?
- Redis 的鏈表數據結構的特徵有哪些?
- 請介紹一下 Redis 的 String 類型底層實現?
- Redis 的 String 類型使用 SSD 方式實現的好處?
- 設計一下在交易網站首頁展示當天最熱門售賣商品的前五十名商品列表?
- ... ...
面試問題的答案解析太長,這邊就不一一列舉出來了,已經整理成如下所示的PDF文檔,有需要的朋友可以 直接私信 “學習” 免費領取!
03 最後看看我自己整理的一份Redis學習筆記
- 為什麼要用 redis /為什麼要用緩存(高性能、高併發)
- 為什麼要用 redis 而不用 map/guava 做緩存?
- redis 常見數據結構以及使用場景分析(String、Hash、List、Set、Sorted Set)
- redis 內存淘汰機制(MySQL裡有2000w數據,Redis中只存20w的數據,如何保證Redis中的數據都是熱點數據?)
- redis 持久化機制(怎麼保證 redis 掛掉之後再重啟數據可以進行恢復)
- Redis 常見異常及解決方案(緩存穿透、緩存雪崩、緩存預熱、緩存降級)
- 分佈式環境下常見的應用場景(分佈式鎖、分佈式自增 ID)
- Redis 集群模式( 主從模式、哨兵模式、Cluster 集群模式)
- 如何解決 Redis 的併發競爭 Key 問題?
- 如何保證緩存與數據庫雙寫時的數據一致性?
- ... ...
總而言之,面試官問來問去,問的那些Redis知識點也就這麼多吧,許是我複習的不夠到位,知識點掌握不夠熟練,所以面試才會卡殼。將這些Redis面試知識解析以及我整理的一些學習筆記分享出來給大家參考學習,希望你們不要像我一樣(虛心一場呀~)
有需要這些學習筆記資料的朋友注意啦:轉發+私信 “學習”即可免費領取!!
還有更多學習筆記面試資料也分享如下(都可免費領取):
轉發+轉發+轉發+私信 “學習”即可免費獲取!!!!
閱讀更多 追逐仰望星空 的文章