史上最全Redis面試題及答案


1、什么是Redis?

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

3、Redis支持哪幾種數據類型?

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

5、Redis的全稱是什么?

6、Redis有哪幾種數據淘汰策略?

7、Redis官方為什么不提供Windows版本?

8、一個字符串類型的值能存儲最大容量是多少?

9、為什么Redis需要把所有數據放到內存中?

10、Redis集群方案應該怎么做?都有哪些方案?

11、Redis集群方案什么情況下會導致整個集群不可用?

12、MySQL里有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據?

  13、Redis有哪些適合的場景?

  14、Redis支持的Java客戶端都有哪些?官方推薦用哪個?

15、Redis和Redisson有什么關系?

16、Jedis與Redisson對比有什么優缺點?

17、Redis如何設置密碼及驗證密碼?

18、說說Redis哈希槽的概念?

19、Redis集群的主從復制模型是怎樣的?

20、Redis集群會有寫操作丟失嗎?為什么?

21、Redis集群之間是如何復制的?

22、Redis集群最大節點個數是多少?

23、Redis集群如何選擇數據庫?

24、怎么測試Redis的連通性?

25、Redis中的管道有什么用?

26、怎么理解Redis事務?

27、Redis事務相關的命令有哪幾個?

28、Redis key的過期時間和永久有效分別怎么設置?

29、Redis如何做內存優化?

30、Redis回收進程如何工作的?

31、Redis回收使用的是什么算法?

32、Redis如何做大量數據插入?

33、為什么要做Redis分區?

34、你知道有哪些Redis分區實現方案?

35、Redis分區有什么缺點?

36、Redis持久化數據和緩存怎么做擴容?

37、分布式Redis是前期做還是后期規模上來了再做好?為什么?

38、Twemproxy是什么?

39、支持一致性哈希的客戶端有哪些?

40、Redis與其他key-value存儲有什么不同?

41、Redis的內存占用情況怎么樣?

42、都有哪些辦法可以降低Redis的內存使用情況呢?

https://www.cnblogs.com/jandison/p/6902396.html

 

43、查看Redis使用情況及狀態信息用什么命令?

info

 

44、Redis的內存用完了會發生什么?

 

我們知道,redis設置配置文件的maxmemory參數,可以控制其最大可用內存大小(字節)。

那么當所需內存,超過maxmemory怎么辦?

這個時候就該配置文件中的maxmemory-policy出場了。

其默認值是noeviction。

下面我將列出當可用內存不足時,刪除redis鍵具有的淘汰規則。

 

規則名稱

規則說明

volatile-lru

使用LRU算法刪除一個鍵(只對設置了生存時間的鍵)

allkeys-lru

使用LRU算法刪除一個鍵

volatile-random

隨機刪除一個鍵(只對設置了生存時間的鍵)

allkeys-random

隨機刪除一個鍵

volatile-ttl

刪除生存時間最近的一個鍵

noeviction

不刪除鍵,只返回錯誤

LRU算法,least RecentlyUsed,最近最少使用算法。也就是說默認刪除最近最少使用的鍵。

但是一定要注意一點!redis中並不會准確的刪除所有鍵中最近最少使用的鍵,而是隨機抽取3個鍵,刪除這三個鍵中最近最少使用的鍵。

那么3這個數字也是可以設置的,對應位置是配置文件中的maxmeory-samples

 

45、Redis是單線程的,如何提高多核CPU的利用率?

一個機器通過不同端口開多個實例 

 

46、一個Redis實例最多能存放多少的keys?List、Set、Sorted Set他們最多能存放多少元素?

 232  

 

47、Redis常見性能問題和解決方案?  關於redis性能問題分析和優化可參考 https://www.cnblogs.com/chenpingzhao/p/6859041.html

 

1.Master最好不要做任何持久化工作,包括內存快照和AOF日志文件,特別是不要啟用內存快照做持久化。   

2.如果數據比較關鍵,某個Slave開啟AOF備份數據,策略為每秒同步一次。   

3.為了主從復制的速度和連接的穩定性,Slave和Master最好在同一個局域網內。   

4.盡量避免在壓力較大的主庫上增加從庫  

5.為了Master的穩定性,主從復制不要用圖狀結構,用單向鏈表結構更穩定,即主從關系為:Master<--Slave1<--Slave2<--Slave3.......,這樣的結構也方便解決單點故障問題,實現Slave對Master的替換,也即,如果Master掛了,可以立馬啟用Slave1做Master,其他不變。

 

48、Redis提供了哪幾種持久化方式?

https://www.cnblogs.com/chenliangcl/p/7240350.html

 

49、如何選擇合適的持久化方式?

根據不同需求 選擇

 

50、修改配置不重啟Redis會實時生效嗎?

Config set parameter value  命令可以動態地調整 Redis 服務器的配置(configuration)而無須重啟

可以通過 Config get *

看看哪些參數 redis可以動態設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM