Web前端求職時都會被問到的Redis面試題分享!
Web前端人員怎麼求職?Redis面試題有哪些?Redis(全稱:Remote Dictionary Server 遠端字典服務)是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。很多人在Web前端求職時都會被問到Redis相關問題,尤其是在BRT類名企,接下來千鋒小編就給大家分享一下。
1、Redis相比memcached有哪些優勢?
1) memcached所有的值均是簡單的字串,redis作為其替代者, 支援更為豐富的資料型別;
2) redis的速度比memcached快很多;
3) redis可以持久化其資料。
2、Redis有哪幾種資料淘汰策略?
noeviction:返回錯誤當記憶體限制達到並且客戶端嘗試執行會讓更多記憶體被使用的命令(大部分的寫入指令,但DEL和幾個例外)。
allkeys-lru: 嘗試回收最少使用的鍵(LRU),使得新新增的資料有空間存放。
volatile-lru: 嘗試回收最少使用的鍵(LRU),但僅限於在過期集合的鍵,使得新新增的資料有空間存放。
allkeys-random: 回收隨機的鍵使得新新增的資料有空間存放。
volatile-random: 回收隨機的鍵使得新新增的資料有空間存放,但僅限於在過期集合的鍵。volatile-ttl: 回收在過期集合的鍵,並且優先回收存活時間(TTL)較短的鍵,使得新新增的資料有空間存放。
3、Redis是單執行緒還是多執行緒?有何優勢?
Redis是單執行緒,但是Redis 6釋出後,它其實是支援多執行緒的。Redis是多執行緒的優勢有兩點:
1)單執行緒Redis的效能瓶頸主要在於網路的IO消耗,所以我們在最佳化的方向就是要提高網路IO效能。
2)Redis 6 引入的多執行緒IO特性對效能提升至少是一倍以上。Redis的多執行緒部分只是用來處理網路資料的讀寫和協議解析,執行命令仍然是單執行緒。
4、Redis主從複製會出現哪些問題?
1)一旦主節點當機,從節點晉升為主節點,同時需要修改應用方的主節點地址,還需要命令所有從節點去複製新的主節點,整個過程需要人工干預。
2)主節點的寫能力受到單機的限制。
3)主節點的儲存能力受到單機的限制。
4)原生複製的弊端在早期的版本中也會比較突出,比如:redis複製中斷後,從節點會發起psync。此時如果同步不成功,則會進行全量同步,主庫執行全量備份的同時,可能會造成毫秒或秒級的卡頓。
5、為什麼Redis需要把所有資料放到記憶體中?
Redis為了達到最快的讀寫速度將資料都讀到記憶體中,並透過非同步的方式將資料寫入磁碟。所以Redis具有快速和資料持久化的特徵。如果不將資料放在記憶體中,磁碟I/O速度為嚴重影響Redis的效能。在記憶體越來越便宜的今天,Redis將會越來越受歡迎。
如果設定了最大使用的記憶體,則資料已有記錄數達到記憶體限值後不能繼續插入新值。
6、有哪些Redis分割槽實現方案?
客戶端分割槽就是在客戶端就已經決定資料會被儲存到哪個Redis節點或者從哪個Redis節點讀取。大多數客戶端已經實現了客戶端分割槽。代理分割槽 意味著客戶端將請求傳送給代理,然後代理決定去哪個節點寫資料或者讀資料。
代理根據分割槽規則決定請求哪些Redis例項,然後根據Redis的響應結果返回給客戶端。Redis和memcached的一種代理實現就是Twemproxy查詢路由(Query routing) 的意思是客戶端隨機地請求任意一個Redis例項,然後由Redis將請求轉發給正確的Redis節點。
Redis Cluster實現了一種混合形式的查詢路由,但並不是直接將請求從一個Redis節點轉發到另一個Redis節點,而是在客戶端的幫助下直接redirected到正確的Redis節點。
7、Redis持久化資料和快取怎麼做擴容?
如果Redis被當做快取使用,使用一致性雜湊實現動態擴容縮容。如果Redis被當做一個持久化儲存使用,必須使用固定的keys-to-nodes對映關係,節點的數量一旦確定不能變化。否則的話(即Redis節點需要動態變化的情況),必須使用可以在執行時進行資料再平衡的一套系統,而當前只有Redis叢集可以做到這樣。
8、Redis與其他key-value儲存有什麼不同?
Redis有著更為複雜的資料結構並且提供對他們的原子性操作,這是一個不同於其他資料庫的進化路徑。Redis的資料型別都是基於基本資料結構的同時對程式設計師透明,無需進行額外的抽象。Redis執行在記憶體中但是可以持久化到磁碟,所以在對不同資料集進行高速讀寫時需要權衡記憶體,應為資料量不能大於硬體記憶體。在記憶體資料庫方面的另一個優點是, 相比在磁碟上相同的複雜的資料結構,在記憶體中操作起來非常簡單,這樣Redis可以做很多內部複雜性很強的事情。 同時,在磁碟格式方面他們是緊湊的以追加的方式產生的,因為他們並不需要進行隨機訪問。
想了解更多Redis面試題及答案,歡迎關注小千,後期會繼續分享Web前端相關技術知識。
本文來自千鋒教育,轉載請註明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2840547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分享30道Redis面試題,面試官能問到的我都找到了Redis面試題
- 跳槽時,這些Java面試題99%會被問到Java面試題
- Python面試你可能會被問到的面試題Python面試題
- 前端面試中可能會問到的問題(一)前端面試
- 【乾貨分享】面試軟體測試工程師會被問到哪些問題?面試工程師
- web前端開發面試題分享Web前端面試題
- 邦芒面試:面試99%會被問到的問題,你一定要知道面試
- 面試中可能會被問到的幾個關於“委託”的問題面試
- web前端教程分享:常見 React 面試題Web前端React面試題
- 深圳Web前端學習:分享一份Web前端面試題Web前端面試題
- 每次面試都會被問,什麼是紅黑樹?面試
- 20道你必須要背會的微服務面試題,面試一定會被問到微服務面試題
- 科技大亨面試時都愛問什麼樣的面試問題?面試
- 面試時,你會問面試官哪些問題?面試
- 95%的面試官都會問到的50道Java執行緒題,附答案面試Java執行緒
- 邦芒面試:面試時這些問題不能提,否則會被降分面試
- 【前端詞典】繼承(一) – 面試官問的你都會嗎?前端繼承面試
- 【前端詞典】繼承(一) - 面試官問的你都會嗎?前端繼承面試
- redis分散式鎖,面試官請隨便問,我都會Redis分散式面試
- web前端學習教程分享:作用域的問題Web前端
- 面試時被問到Flutter/Dart的HashMap怎麼辦?面試FlutterDartHashMap
- 學前端求職難?千鋒Web前端面試題全套影片合集助你快速通關前端求職Web面試題
- 面試現場:這些常問的面試題你都會了嗎面試題
- 常見的10道Web前端面試題及答案分享!Web前端面試題
- 前端面試中最常問到的垂直水平居中問題前端面試
- PHP中高階面試的時候總是會問到這些問題(總結)PHP面試
- 好程式設計師web前端教程分享JavaScript面試題程式設計師Web前端JavaScript面試題
- 好程式設計師web前端分享常見面試題程式設計師Web前端面試題
- 這是今年前端最常見的面試題,你都會了嗎?前端面試題
- 前端面試問到的題透過5k前端面試
- 面試時,你被問到過 TCP/IP 協議嗎?面試TCP協議
- 好程式設計師web前端培訓分享Vue面試題程式設計師Web前端Vue面試題
- Web前端JQuery面試題(一)Web前端jQuery面試題
- web前端達到什麼水平,才能滿足求職的標準?Web前端求職
- web前端工程師面試題10條必會筆試題Web前端工程師面試題筆試
- 好程式設計師HTML5大前端分享web前端面試題程式設計師HTML前端Web面試題
- 優思學院|面試求職時談起“六西格瑪黑帶“都會聊些什麼?面試求職
- 面試 HTTP ,99% 的面試官都愛問這些問題面試HTTP