<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【金三銀四】Redis面試題(2021最新版)

          共 3857字,需瀏覽 8分鐘

           ·

          2021-03-25 15:22

          前言

          作為一個(gè)后端開發(fā)人員,不只是要求開發(fā)人員需要掌握 Redis,也要求運(yùn)維人員也要懂 Redis。由于 Redis 的運(yùn)用廣泛,我們也知道它的重要性,至此面試中經(jīng)常被問到。在這 80道 Redis 面試題中,考察知識(shí)點(diǎn)包括基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)指令、高并發(fā)處理、持久化、集群、復(fù)制、Redis 應(yīng)用等。在這份 80 道題中都反應(yīng)出來了。如果你最近在準(zhǔn)備面試或者在學(xué)習(xí) Redis,我相信本次小編可以滿足你的面試需要。也希望我花了半個(gè)月整理的這些題目,解答對(duì)你有所幫助。

          1、什么是 Redis?

          Redis 是一個(gè)使用 C 語言寫成的,開源的高性能key-value非關(guān)系緩存數(shù)據(jù)庫。它支持存儲(chǔ)的value 類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。Redis的數(shù)據(jù)都基于緩存的,所以很快,每秒可以處理超過 10萬次讀寫操作,是已知性能最快的Key-Value DB。Redis也可以實(shí)現(xiàn)數(shù)據(jù)寫入磁盤中,保證了數(shù)據(jù)的安全不丟失,而且Redis的操作是原子性的。

          2、Redis 的數(shù)據(jù)類型?

          Redis主要有5種數(shù)據(jù)類型,包括String,List,Set,Zset,Hash,滿足大部分的使用要求

          3、使用 Redis 有哪些好處?

          (1) 速度快,因?yàn)閿?shù)據(jù)存在內(nèi)存中,類似于HashMap,HashMap的優(yōu)勢(shì)就是查找和操作的時(shí)間復(fù)

          雜度都很低

          (2)支持豐富數(shù)據(jù)類型,支持string,list,set,sorted set,hash

          (3) 支持事務(wù),操作都是原子性,所謂的原子性就是對(duì)數(shù)據(jù)的更改要么全部執(zhí)行,要么全部不執(zhí)行

          (4) 豐富的特性:可用于緩存,消息,按key設(shè)置過期時(shí)間,過期后將會(huì)自動(dòng)刪除

          4、Redis 相比 Memcached 有哪些優(yōu)勢(shì)?

          5、Memcache 與 Redis 的區(qū)別都有哪些?

          6、Redis 是單進(jìn)程單線程的?

          7、一個(gè)字符串類型的值能存儲(chǔ)最大容量是多少?

          8、Redis 的持久化機(jī)制是什么?各自的優(yōu)缺點(diǎn)?

          Redis 提供兩種持久化機(jī)制 RDB(默認(rèn)) 和 AOF 機(jī)制:

          RDB:是Redis DataBase縮寫快照

          • RDB是Redis默認(rèn)的持久化方式。按照一定的時(shí)間將內(nèi)存的數(shù)據(jù)以快照的形式保存到硬盤中,對(duì)應(yīng)產(chǎn)生的數(shù)據(jù)文件為dump.rdb。通過配置文件中的save參數(shù)來定義快照的周期。

          優(yōu)點(diǎn):

          1. 只有一個(gè)文件 dump.rdb,方便持久化。

          2. 容災(zāi)性好,一個(gè)文件可以保存到安全的磁盤。

          3. 性能最大化,fork 子進(jìn)程來完成寫操作,讓主進(jìn)程繼續(xù)處理命令,所以是 IO 最大化。使用單 獨(dú)子進(jìn)程來進(jìn)行持久化,主進(jìn)程不會(huì)進(jìn)行任何 IO 操作,保證了 redis 的高性能

          4. 相對(duì)于數(shù)據(jù)集大時(shí),比 AOF 的啟動(dòng)效率更高。

          缺點(diǎn):

          1. 數(shù)據(jù)安全性低。RDB 是間隔一段時(shí)間進(jìn)行持久化,如果持久化之間 redis 發(fā)生故障,會(huì)發(fā)生數(shù) 據(jù)丟失。所以這種方式更適合數(shù)據(jù)要求不嚴(yán)謹(jǐn)?shù)臅r(shí)候)

          2. AOF(Append-only fifile)持久化方式:是指所有的命令行記錄以 redis 命令請(qǐng) 求協(xié)議的格式 完全持久化存儲(chǔ))保存為 aof 文件。

          AOF:持久化:

          • AOF持久化(即Append Only File持久化),則是將Redis執(zhí)行的每次寫命令記錄到單獨(dú)的日志文件

          • 中,當(dāng)重啟Redis會(huì)重新將持久化的日志中文件恢復(fù)數(shù)據(jù)。當(dāng)兩種方式同時(shí)開啟時(shí),數(shù)據(jù)恢復(fù)Redis會(huì)優(yōu)先選擇AOF恢復(fù)

          優(yōu)點(diǎn):

          1. 數(shù)據(jù)安全,aof 持久化可以配置 appendfsync 屬性,有 always,每進(jìn)行一次 命令操作就記錄 到 aof 文件中一次。

          2. 通過 append 模式寫文件,即使中途服務(wù)器宕機(jī),可以通過 redis-check-aof 工具解決數(shù)據(jù)一 致性問題。

          3. AOF 機(jī)制的 rewrite 模式。AOF 文件沒被 rewrite 之前(文件過大時(shí)會(huì)對(duì)命令 進(jìn)行合并重寫),可以刪除其中的某些命令(比如誤操作的 flflushall))

          缺點(diǎn):

          1. AOF 文件比 RDB 文件大,且恢復(fù)速度慢。

          2. 數(shù)據(jù)集大的時(shí)候,比 rdb 啟動(dòng)效率低。

          倆種持久化的優(yōu)缺點(diǎn)是什么?


          • AOF文件比RDB更新頻率高,優(yōu)先使用AOF還原數(shù)據(jù)。

          • AOF比RDB更安全也更大

          • RDB性能比AOF好

          • 如果兩個(gè)都配了優(yōu)先加載AOF

          9、Redis 常見性能問題和解決方案:

          10、Redis 過期鍵的刪除策略?

          11、Redis 的回收策略(淘汰策略)?

          12、為什么 Redis 需要把所有數(shù)據(jù)放到內(nèi)存中?

          13、Redis 的同步機(jī)制了解么?

          14、Pipeline 有什么好處,為什么要用 pipeline?

          15、是否使用過 Redis 集群,集群的原理是什么?

          16、Redis 集群方案什么情況下會(huì)導(dǎo)致整個(gè)集群不可用?

          17、Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個(gè)?

          18、Jedis 與 Redisson 對(duì)比有什么優(yōu)缺點(diǎn)?

          19、Redis 如何設(shè)置密碼及驗(yàn)證密碼?

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

          21、Redis 集群的主從復(fù)制模型是怎樣的?

          22、Redis 集群會(huì)有寫操作丟失嗎?為什么?

          23、Redis 集群之間是如何復(fù)制的?

          24、Redis 集群最大節(jié)點(diǎn)個(gè)數(shù)是多少?

          25、Redis 集群如何選擇數(shù)據(jù)庫?

          26、怎么測(cè)試 Redis 的連通性?

          27、怎么理解 Redis 事務(wù)?

          28、Redis 事務(wù)相關(guān)的命令有哪幾個(gè)?

          29、Redis key 的過期時(shí)間和永久有效分別怎么設(shè)置?

          30、Redis 如何做內(nèi)存優(yōu)化?

          31、Redis 回收進(jìn)程如何工作的?

          32、都有哪些辦法可以降低 Redis 的內(nèi)存使用情況呢?

          33、Redis 的內(nèi)存用完了會(huì)發(fā)生什么?

          34、一個(gè) Redis 實(shí)例最多能存放多少的 keys?List、Set、Sorted Set 他們最多能存放多少元素?

          35、MySQL 里有 2000w 數(shù)據(jù),redis 中只存 20w 的數(shù)據(jù),如何保證 redis 中的數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)?

          36、Redis 最適合的場(chǎng)景?

          37、假如 Redis 里面有 1 億個(gè) key,其中有 10w 個(gè) key 是以某個(gè)固定的已知的前綴開頭的,如果將它們?nèi)空页鰜恚?/span>

          38、如果有大量的 key 需要設(shè)置同一時(shí)間過期,一般需要注意什么?

          39、使用過 Redis 做異步隊(duì)列么,你是怎么用的?

          40、使用過 Redis 分布式鎖么,它是什么回事?

          41、Redis 支持那幾種數(shù)據(jù)結(jié)構(gòu),底層原理解釋一下

          42、Redis 有哪幾種數(shù)據(jù)淘汰策略

          43、Redis 集群方案應(yīng)該怎么做,有哪些方案

          44、Redis 和 Redisson 有什么關(guān)系

          45、Redis 與 Redisson 對(duì)比有什么優(yōu)缺點(diǎn)

          46、Redis 中管道有什么用

          47、Redis 回收內(nèi)存使用的什么算法

          48、Redis 如何做大量數(shù)據(jù)插入

          49、為什么要做 Redis 分區(qū),有哪些 Redis 分區(qū)實(shí)現(xiàn)方案,Redis 分區(qū)有什么缺點(diǎn)

          50、Redis 持久化數(shù)據(jù)和緩存怎么做擴(kuò)容

          51、分布式 Redis 是前期做還是后期規(guī)模上來了再做好,為什么

          52、Twemproxy 是什么

          53、Redis 的內(nèi)存占用情況怎么樣

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

          55、Redis 是單線程的是怎么做到高并發(fā)的

          56、Redis 提供了哪幾種持久化方式,如何選擇合適的持久化方式

          57、修改配置不重啟 Redis 會(huì)實(shí)事生效嗎

          58、數(shù)據(jù)庫和 Redis 緩存雙寫不一致的問題怎么解決的

          59、Redis 的過期策略怎么設(shè)計(jì)比較合理

          60、發(fā)生緩存雪崩、緩存擊穿、緩存穿透的問題分別有什么解決方案

          61、緩存預(yù)熱、緩存熱備、緩存降級(jí)的高可用技術(shù)手段了解嗎?

          62、使用 Redis,設(shè)計(jì)一下在交易網(wǎng)站首頁展示當(dāng)天最熱門售賣商品的前五十名商品列表?

          63、Redis 為什么設(shè)計(jì)成單線程的?

          64、什么是緩存穿透?怎么解決?

          65、什么是緩存雪崩?怎么解決?

          66、緩存的更新策略有幾種?分別有什么注意事項(xiàng)?

          67、請(qǐng)介紹幾個(gè)可能導(dǎo)致 Redis 阻塞的原因

          68、怎么去發(fā)現(xiàn) Redis 阻塞異常情況?

          69、如何實(shí)現(xiàn)本地緩存?請(qǐng)描述一下你知道的方式。

          70、Redis 通訊協(xié)議是什么?有什么特點(diǎn)?

          71、Redis 常用的命令有哪些?

          72、Redis 各個(gè)數(shù)據(jù)類型最大存儲(chǔ)量分別是多少?

          73、請(qǐng)介紹一下 Redis 的數(shù)據(jù)類型 SortedSet(zset)以及底層實(shí)現(xiàn)機(jī)制?

          74、什么是 Redis 事務(wù)?原理是什么?

          75、Redis 事務(wù)的注意點(diǎn)有哪些?

          76、Redis 為什么不支持回滾?

          77、Redis 集群架構(gòu)模式有哪幾種?

          78、Redis 慢查詢是什么?通過什么配置?

          79、Redis 的慢查詢修復(fù)經(jīng)驗(yàn)有哪些?怎么修復(fù)的?

          80、如何優(yōu)化 Redis 服務(wù)的性能?

          該資料獲取方式:關(guān)注+轉(zhuǎn)發(fā)

          下方掃碼關(guān)注公眾號(hào)加我微信【備注:公眾號(hào)】 免費(fèi)領(lǐng)取

          程序員這個(gè)職業(yè)需要我們不斷進(jìn)步,需要我們不斷學(xué)習(xí)新的知識(shí)。

          喜歡小編的文章可以點(diǎn)點(diǎn)關(guān)注哦!

          小編持續(xù)為你分享最新文章 和 福利領(lǐng)取哦


          瀏覽 76
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  自拍偷拍精品视频 | 日本一区二区中文字幕 | 青娱乐人操 | 亚洲无码在线看片 | 91在线精品一区二区 |