2019最新阿里Redis面試題,這四大知識點你知道多少!
前言
在大數據時代,頻繁地在應用和數據庫之間進行讀寫操作在性能、速度、體驗上已經遠遠不能滿足用戶、客戶、開發人員的要求了,於是一種基於內存操作的數據庫便應運而生。Redis 是一種基於內存的數據庫,如何輕鬆理解並熟練操作 Redis 是一個有責任心、進取心程序員應該瞭解和掌握的技術。Redis在互聯網技術存儲方面使用如此廣泛,幾乎所有的後端技術面試官都要在Redis的使用和原理方面對小夥伴們進行各種刁難。作為一名在互聯網技術行業打擊過成百上千名【請允許我誇張一下】的資深技術面試官,看過了無數落寞的身影失望的離開,略感愧疚,故獻上此文,希望各位朋友以後面試勢如破竹,永無失敗!
1.Redis基礎相關問題(答案見文末)
- Redis 是什麼?說說它的優點和缺點?
- Redis與memcached相比有哪些優勢?
- Redis支持哪幾種數據類型?
- Redis主要消耗什麼物理資源?
- Redis有哪幾種數據淘汰策略?
- Redis官方為什麼不提供Windows版本?
- 一個字符串類型的值能存儲最大容量是多少?
- 如何將 Redis 放到應用程序中?
- 使用 Redis 的時候應用程序是如何進行讀寫的?
- 為什麼Redis需要把所有數據放到內存中?
- 什麼是CAP理論?
2.Redis集群相關問題
- Redis集群方案應該怎麼做?都有哪些方案?
- Redis集群方案什麼情況下會導致整個集群不可用?
- MySQL裡有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據?
- Redis有哪些適合的場景?
- Redis支持的Java客戶端都有哪些?官方推薦用哪個?
- Redis和Redisson有什麼關係?
- Jedis與Redisson對比有什麼優缺點?
- 說說Redis哈希槽的概念?
- Redis集群的主從複製模型是怎樣的?
- Redis集群會有寫操作丟失嗎?為什麼?
- Redis集群之間是如何複製的?
- Redis集群最大節點個數是多少?
- Redis集群如何選擇數據庫?
- Redis中的管道有什麼用?
3.Redis分佈式鎖等相關問題
- 使用過Redis分佈式鎖麼,它是怎麼實現的?
- 簡述Redis分佈式鎖的缺陷?
- 講講對Redisson實現Redis分佈式鎖的底層原理的理解?
- 加鎖機制,鎖互斥機制,watch dog自動延期機制,可重入加鎖機制,鎖釋放機制是什麼?
- Redis 的 Setnx 命令是如何實現分佈式鎖的?
- 說說對Setnx 的實現鎖的原理的理解?
- 如何避免死鎖的出現?
- 怎麼理解Redis事務?
- Redis事務相關的命令有哪幾個?
- Redis key的過期時間和永久有效分別怎麼設置?
- Redis如何做內存優化?
- Redis回收進程如何工作的?
- 使用過Redis做異步隊列麼,你是怎麼用的?有什麼缺點?
- 什麼是緩存穿透?如何避免?什麼是緩存雪崩?何如避免?
4.Redis結合MySQL 的相關問題
- Redis 如何與 MySQL 數據庫結合起來?
- 應用通過 Redis 客戶端進行讀取並展示,是所有的數據都是這麼做嗎?
- 在修改數據的時候是修改到 Redis 嗎?還是直接修改 MySQL?
- 如果修改 Redis 中數據,那什麼時候同步到 MySQL,是被迫的,還是開發人員可控的?
- 如果直接修改 MySQL 中數據,那 Redis 中數據會被同步嗎,如何做到的?
如何正確系統的學習Redis高性能緩存數據庫
為什麼要學習 Redis?16 年以來,互聯網泡沫破裂,大量互聯網公司倒閉,導致開發人員一下子變得不那麼稀缺搶手,各個公司面試時也是慎之又慎,整體就業環境較之前變差。這就要求我們得有更多技能來增強我們的競爭力,現在大部分互聯網企業中都要求要熟悉 Redis 的使用。所以學會使用 Redis 可以使你更具競爭力,Java、PHP、Python等主流編程語言開發的項目中 Redis 都有普遍應用,學習 Redis 可以在企業眼中具吸引力。在這給有需要的朋友的朋友提供一套系統Redis的學習思維導圖!
最後針對思維導圖,我根據多年的經驗也整理了一套視頻資料和麵試題資料(包括Kafka、Mysql、Tomcat、Docker、MyBatis、Nginx、Netty、Dubbo、Redis、Spring cloud、分佈式、高併發、性能調優、微服務),需要的朋友關注+收藏,後臺私信“資料”即可領取。