精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我們一起聊聊面試被吊打之Redis原理篇

存儲 存儲軟件 Redis
Redis不同版本之間采用的線程模型是不一樣的,在Redis4.0版本之前使用的是單線程模型,在4.0版本之后增加了多線程的支持。

[[385123]]

本文轉載自微信公眾號「JAVA日知錄」,作者單一色調。轉載本文請聯系JAVA日知錄公眾號。

小張興沖沖去面試,結果被面試官吊打!

小張:

面試官,你好。我是來參加面試的。

面試官:

你好,小張。我看了你的簡歷,熟練掌握Redis,那么我就隨便問你幾個Redis相關的問題吧。首先我的問題是,Redis是單線程還是多線程呢?

小張:

Redis不同版本之間采用的線程模型是不一樣的,在Redis4.0版本之前使用的是單線程模型,在4.0版本之后增加了多線程的支持。

在4.0之前雖然我們說Redis是單線程,也只是說它的網絡I/O線程以及Set 和 Get操作是由一個線程完成的。但是Redis的持久化、集群同步還是使用其他線程來完成。

4.0之后添加了多線程的支持,主要是體現在大數據的異步刪除功能上,例如 unlink key、flushdb async、flushall async 等

面試官:

回答的很好,那為什么Redis在4.0之前會選擇使用單線程?而且使用單線程還那么快?

小張:

選擇單線程個人覺得主要是使用簡單,不存在鎖競爭,可以在無鎖的情況下完成所有操作,不存在死鎖和線程切換帶來的性能和時間上的開銷,但同時單線程也不能完全發揮出多核CPU的性能。

至于為什么單線程那么快我覺得主要有以下幾個原因:

  1. Redis 的大部分操作都在內存中完成,內存中的執行效率本身就很快,并且采用了高效的數據結構,比如哈希表和跳表。
  2. 使用單線程避免了多線程的競爭,省去了多線程切換帶來的時間和性能開銷,并且不會出現死鎖。
  3. 采用 I/O 多路復用機制處理大量客戶端的Socket請求,因為這是基于非阻塞的 I/O 模型,這就讓Redis可以高效地進行網絡通信,I/O的讀寫流程也不再阻塞。

面試官:

不錯,那Redis是如何實現數據不丟失的呢?

小張:

Redis數據是存儲在內存中的,為了保證Redis數據不丟失,那就要把數據從內存存儲到磁盤上,以便在服務器重啟后還能夠從磁盤中恢復原有數據,這就是Redis的數據持久化。Redis數據持久化有三種方式。

AOF 日志(Append Only File,文件追加方式):記錄所有的操作命令,并以文本的形式追加到文件中。

RDB 快照(Redis DataBase):將某一個時刻的內存數據,以二進制的方式寫入磁盤。

混合持久化方式:Redis 4.0 新增了混合持久化的方式,集成了 RDB 和 AOF 的優點。

面試官:

那你分別說說 AOF和 RDB的實現原理吧。

小張:

AOF采用的是寫后日志的方式,Redis先執行命令把數據寫入內存,然后再記錄日志到文件中。AOF日志記錄的是操作命令,不是實際的數據,如果采用AOF方法做故障恢復時需要將全量日志都執行一遍。

 

RDB采用的是內存快照的方式,它記錄的是某一時刻的數據,而不是操作,所以采用RDB方法做故障恢復時只需要直接把RDB文件讀入內存即可,實現快速恢復。

面試官:

你剛提到了AOF采用的是 “寫后日志” 的方式,我們平時用的MySQL則采用的是 “寫前日志”,那Redis為什么要先執行命令,再把數據寫入日志呢?

小張:額頭開始冒汗,問的是些啥問題呀。。。

額,這個主要是由于Redis在寫入日志之前,不對命令進行語法檢查,所以只記錄執行成功的命令,避免出現記錄錯誤命令的情況,而且在命令執行后再寫日志不會阻塞當前的寫操作。

面試官:

那 后寫日志又有什么風險呢?

小張:

我... 這個我不會。

面試官:

好吧,后寫日志主要有兩個風險可能會發生:

數據可能會丟失:如果 Redis 剛執行完命令,此時發生故障宕機,會導致這條命令存在丟失的風險。

可能阻塞其他操作:AOF 日志其實也是在主線程中執行,所以當 Redis 把日志文件寫入磁盤的時候,還是會阻塞后續的操作無法執行。

我還有個問題是 RDB做快照時會阻塞線程嗎?

小張:

Redis 提供了兩個命令來生成 RDB 快照文件,分別是 save 和 bgsave。save 命令在主線程中執行,會導致阻塞。而 bgsave 命令則會創建一個子進程,用于寫入 RDB 文件的操作,避免了對主線程的阻塞,這也是 Redis RDB 的默認配置。

面試官:

RDB 做快照的時候數據能修改嗎?

小張:

save是同步的會阻塞客戶端命令,bgsave的時候是可以修改的。

面試官:

那Redis是怎么解決在bgsave做快照的時候允許數據修改呢?

小張:(你咋還問。。。我™不會啊!)

額,這個我不太清楚...

 

面試官:

這里主要是利用 bgsave的子線程實現的,具體操作如下:

  • 如果主線程執行讀操作,則主線程和 bgsave 子進程互相不影響;
  • 如果主線程執行寫操作,則被修改的數據會復制一份副本,然后 bgsave子進程會把該副本數據寫入 RDB 文件,在這個過程中,主線程仍然可以直接修改原來的數據。

 

要注意,Redis 對 RDB 的執行頻率非常重要,因為這會影響快照數據的完整性以及 Redis 的穩定性,所以在 Redis 4.0 后,增加了 AOF 和 RDB 混合的數據持久化機制: 把數據以 RDB 的方式寫入文件,再將后續的操作命令以 AOF 的格式存入文件,既保證了 Redis 重啟速度,又降低數據丟失風險。

小張:

學到了學到了。

面試官:

那你再跟我說說Redis如何實現高可用吧?

小張:

Redis實現高可用主要有三種方式:主從復制、哨兵模式,以及 Redis 集群。

主從復制

將從前的一臺 Redis 服務器,同步數據到多臺從 Redis 服務器上,即一主多從的模式,這個跟MySQL主從復制的原理一樣。

 

哨兵模式

使用 Redis 主從服務的時候,會有一個問題,就是當 Redis 的主從服務器出現故障宕機時,需要手動進行恢復,為了解決這個問題,Redis 增加了哨兵模式(因為哨兵模式做到了可以監控主從服務器,并且提供自動容災恢復的功能)。

 

Redis Cluster(集群)

Redis Cluster 是一種分布式去中心化的運行模式,是在 Redis 3.0 版本中推出的 Redis 集群方案,它將數據分布在不同的服務器上,以此來降低系統對單主節點的依賴,從而提高 Redis 服務的讀寫性能。

 

面試官:

使用哨兵模式在數據上有副本數據做保證,在可用性上又有哨兵監控,一旦master宕機會選舉salve節點為master節點,這種已經滿足了我們的生產環境需要,那為什么還需要使用集群模式呢?

小張:

額,哨兵模式歸根節點還是主從模式,在主從模式下我們可以通過增加salve節點來擴展讀并發能力,但是沒辦法擴展寫能力和存儲能力,存儲能力只能是master節點能夠承載的上限。所以為了擴展寫能力和存儲能力,我們就需要引入集群模式。

面試官:

集群中那么多Master節點,redis cluster在存儲的時候如何確定選擇哪個節點呢?

小張:

這應該是使用了某種hash算法,但是我不太清楚。。。

 

面試官:

那好,今天的面試就到這里吧,你先回去等我們的面試通知。

小張:

好的,謝謝面試官,你能告訴我redis cluster怎么實現節點選擇的嗎?

面試官:

Redis Cluster采用的是類一致性哈希算法實現節點選擇的,至于什么是一致性哈希算法你自己回去看看。

Redis Cluster將自己分成了16384個Slot(槽位),哈希槽類似于數據分區,每個鍵值對都會根據它的 key,被映射到一個哈希槽中,具體執行過程分為兩大步。

根據鍵值對的 key,按照 CRC16 算法計算一個 16 bit 的值。

再用 16bit 值對 16384 取模,得到 0~16383 范圍內的模數,每個模數代表一個相應編號的哈希槽。

每個Redis節點負責處理一部分槽位,加入你有三個master節點 ABC,每個節點負責的槽位如下:

節點 處理槽位
A 0-5000
B 5001 - 10000
C 10001 - 16383

 

這樣就實現了cluster節點的選擇。

 

責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2025-01-07 09:07:36

接口屬性路徑

2025-04-11 00:05:49

RPC底層分布式

2022-06-15 08:00:50

磁盤RedisRocketMQ

2024-02-20 21:34:16

循環GolangGo

2021-08-27 07:06:10

IOJava抽象

2023-06-30 08:18:51

敏捷開發模式

2022-05-24 08:21:16

數據安全API

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-09-10 21:42:31

2023-04-03 14:20:44

面試C++函數

2023-11-07 08:13:53

分布式網絡

2023-07-27 07:46:51

SAFe團隊測試

2022-06-26 09:40:55

Django框架服務

2023-12-28 09:55:08

隊列數據結構存儲

2022-10-28 07:27:17

Netty異步Future

2022-11-12 12:33:38

CSS預處理器Sass

2022-02-14 07:03:31

網站安全MFA

2022-04-06 08:23:57

指針函數代碼

2025-03-27 02:00:00

SPIJava接口
點贊
收藏

51CTO技術棧公眾號

日韩在线不卡一区| 亚洲一卡二卡三卡| www.国产色| 国产永久精品大片wwwapp| 欧美日韩一区小说| 天天综合五月天| 日本黄色一区二区三区| 久久狠狠一本精品综合网| 亚洲欧洲中文天堂| 日韩av片专区| av在线资源| 国产欧美视频一区二区三区| 亚洲bt欧美bt日本bt| 日韩欧美a级片| 91视频一区| 亚洲精品电影在线| 日韩av在线中文| av电影在线地址| 中文字幕在线一区免费| 国产偷久久久精品专区| 中文字幕一二三四| 激情亚洲成人| 色黄久久久久久| 日本免费福利视频| 精品视频在线播放一区二区三区 | 久久超级碰视频| 久久久久久免费精品| 日本少妇毛茸茸| 久久伊人精品| 欧美日韩精品免费| 国产综合免费视频| 免费电影网站在线视频观看福利| 中文字幕不卡三区| 鲁片一区二区三区| 老牛影视av牛牛影视av| 极品少妇xxxx精品少妇偷拍| 久久人91精品久久久久久不卡| 精品一区二区6| 国产成人在线中文字幕| 欧美挠脚心视频网站| 成人在线免费观看av| 欧美videossex| 亚洲品质自拍视频| 亚洲精品自在在线观看| 三级在线播放| 国产乱对白刺激视频不卡| 国产精品私拍pans大尺度在线 | 欧美性视频一区二区三区| 精品少妇人妻av免费久久洗澡| 亚洲wwwww| 亚洲精品视频一区二区| 一区二区三区国| www 日韩| 中文字幕av一区二区三区免费看| 日本一区视频在线观看免费| 欧美成熟毛茸茸| 91尤物视频在线观看| 黄色一区三区| 天天影院图片亚洲| 97国产一区二区| 97操在线视频| 成人午夜精品福利免费| 成人av在线电影| 国产区一区二区三区| 人妻精品无码一区二区| 成人高清视频在线| 精品国产福利| 男人天堂网在线观看| 久久久久久久久久电影| 视频一区不卡| av网址在线| 夜夜揉揉日日人人青青一国产精品| 老司机激情视频| 成人性生交大片免费看网站| 亚洲国产精品久久久久秋霞影院| 蜜臀av色欲a片无码精品一区| www在线观看黄色| 亚洲一区二区三区四区五区中文 | 中国1级黄色片| 日本a口亚洲| 久久这里只有精品99| 久久综合色综合| 国产亚洲在线| 国产精品亚洲精品| 亚洲精品一区二区三区不卡| 99久久伊人网影院| 日韩少妇中文字幕| av在线导航| 狠狠躁夜夜躁人人爽天天天天97 | 日韩激情在线视频| 精品人妻无码一区| 一本一道久久a久久精品蜜桃| 欧美激情a在线| 中文字幕在线播| 黄色小说综合网站| 久久av一区二区三区亚洲| 岛国在线视频免费看| 亚洲视频一区二区在线| 免费看国产曰批40分钟| 欧美亚洲综合视频| 亚洲成成品网站| 在线观看日本黄色| 一区视频在线| 国产精品极品美女在线观看免费| 午夜精品无码一区二区三区| 26uuu精品一区二区在线观看| 在线不卡日本| 成人免费直播| 日韩精品一区国产麻豆| 免费看黄色av| 最新国产乱人伦偷精品免费网站| 国产精品九九久久久久久久| 亚洲卡一卡二卡三| 国产精品色一区二区三区| 日本在线xxx| 曰本一区二区| 亚洲精品中文字| 久久精品视频免费在线观看| 日韩中文欧美在线| 国产精品 日韩| 菠萝蜜视频国产在线播放| 欧美日韩亚洲天堂| 成人在线观看一区二区| 999视频精品| 国产精品av电影| 午夜激情小视频| 亚洲国产成人精品视频| 久久撸在线视频| 精品国产一区二区三区四区| 国模精品一区二区三区色天香| 97久久人国产精品婷婷| 欧美国产综合色视频| 国产a视频免费观看| 久久午夜影院| 欧美激情视频在线| www日本视频| 亚洲美女视频在线| 亚洲一区二区中文字幕在线观看| 欧美日一区二区| 国产不卡在线观看| 男女污污视频在线观看| 无码人妻精品中文字幕| 日韩精品91亚洲二区在线观看| 久久久人人爽| 手机在线观看av网站| 欧美sm极限捆绑bd| 欧美成人一区二区三区高清| 国产麻豆精品久久一二三| 黄色免费高清视频| 亚洲欧美综合久久久久久v动漫| 国产一区二区三区直播精品电影 | 4438x成人网最大色成网站| 免费成人深夜天涯网站| 日韩电影在线一区二区三区| 欧洲亚洲一区二区| 91福利精品在线观看| 色婷婷久久一区二区| 自拍偷拍福利视频| 中文字幕一区二区三区av| 在线观看免费不卡av| 亚州av乱码久久精品蜜桃| 亚洲a中文字幕| 欧美xxxx视频| 日韩精品视频在线观看免费| 久久免费激情视频| 久久久亚洲午夜电影| 色悠悠久久综合网| 国产电影一区二区在线观看| 92看片淫黄大片欧美看国产片| www久久日com| 亚洲第一免费播放区| 毛片基地在线观看| 久久久久久久久久久99999| 亚洲一区在线不卡| 午夜久久久久| 久久精品二区| 电影亚洲一区| 久热精品在线视频| 五月天婷婷视频| 欧洲亚洲国产日韩| www欧美com| 99麻豆久久久国产精品免费优播| 99视频精品免费| 亚洲综合中文| 欧美二区三区在线| 亚洲我射av| 97精品视频在线观看| 国产精品久久久久一区二区国产| 9191国产精品| 日韩久久久久久久久| 欧美韩国日本一区| 精品国产乱码久久久久夜深人妻| 亚洲免费综合| 欧美爱爱视频网站| 免费av一区| 91中文精品字幕在线视频| 在线天堂资源| 久久久精品在线观看| 天堂中文在线资源| 欧美欧美午夜aⅴ在线观看| 国产在线精品观看| 国产精品麻豆网站| 好吊一区二区三区视频| 国产在线不卡一区| 国产91在线免费| 国产精品久久久久9999赢消| 国产精品国产三级欧美二区| 日韩制服一区| 欧美怡春院一区二区三区| 免费高清完整在线观看| 亚洲精选中文字幕| 亚洲av无码乱码国产麻豆| 欧美特级限制片免费在线观看| 日韩激情一区二区三区| 中文字幕一区二区三区不卡| 极品人妻一区二区三区| 福利电影一区二区| 天堂av在线网站| 亚洲欧美春色| av在线com| 羞羞色午夜精品一区二区三区| 日韩影视精品| 要久久电视剧全集免费| 成人性色av| 精品国产欧美| 91精品久久久久久久久久久久久久 | www.xxxx欧美| 国产一二在线观看| 亚洲激情小视频| 高清国产mv在线观看| 欧美日韩国产综合一区二区| 在线免费一区二区| 色婷婷av久久久久久久| 日韩精品久久久久久久酒店| 亚洲一区二区三区四区不卡| 免费在线观看h片| 亚洲丝袜自拍清纯另类| 91无套直看片红桃在线观看| 国产亚洲综合性久久久影院| 青青草视频播放| 91一区二区三区在线播放| 国产婷婷在线观看| 成人免费va视频| 国产av一区二区三区传媒| 国产精品18久久久久久vr| 亚洲无在线观看| 国产一区在线观看视频| 91蝌蚪视频在线| 国产中文一区二区三区| 精品综合久久久久| 激情亚洲综合在线| 色综合五月婷婷| 国产综合色精品一区二区三区| 免费精品99久久国产综合精品应用| 青草av.久久免费一区| 亚洲天堂2018av| 九色综合狠狠综合久久| 亚洲一二三av| 国产麻豆成人传媒免费观看| 精品人妻一区二区三| 国产成人av网站| 中文字幕在线视频播放| 91捆绑美女网站| 99久久精品免费视频| 亚洲国产精品激情在线观看| jizz18女人高潮| 亚洲视频在线一区二区| 国产亚洲精品码| 精品日韩视频在线观看| 免费黄色片视频| 欧美日韩mp4| 性少妇videosexfreexxx片| 精品国产sm最大网站| 深夜影院在线观看| 中文字幕精品在线| 日皮视频在线观看| 日韩美女主播视频| 伦一区二区三区中文字幕v亚洲| 91精品视频一区| 精品少妇一区| 亚洲精品免费在线看| 欧美成人久久| 日韩网址在线观看| 麻豆成人91精品二区三区| 无码人妻aⅴ一区二区三区玉蒲团| av网站一区二区三区| 国产成人免费观看网站| 日韩毛片高清在线播放| 亚洲精品77777| 欧美亚洲国产怡红院影院| 午夜免费福利视频| 国产亚洲一区精品| 精品一性一色一乱农村| 国产99久久久欧美黑人 | a级大胆欧美人体大胆666| 欧美一区三区三区高中清蜜桃| **日韩最新| 久久精品国产一区二区三区不卡| 国产成人三级| 综合一区中文字幕| 午夜在线a亚洲v天堂网2018| 日韩va在线观看| caoporen国产精品视频| 免费黄色国产视频| 欧美性jizz18性欧美| av网站在线免费看| 亚洲欧美另类国产| 国产丝袜在线播放| 国产精品一区二区三区久久| 欧美久久香蕉| 91xxx视频| 日韩成人免费电影| 黄色在线免费播放| 亚洲女同ⅹxx女同tv| 国产99久久久久久免费看| 欧美精品一区二区在线观看| 91亚洲欧美| 国语自产偷拍精品视频偷 | 久久96国产精品久久99软件| 91精品久久久久久久久久不卡| 国产a视频免费观看| www.99精品| 欧美另类视频在线观看| 欧美日韩国产一级| 成人动漫在线免费观看| 欧美一级淫片videoshd| 国产伦乱精品| 国产精品免费看久久久无码| 久久电影网站中文字幕| 国产1区2区在线观看| 色拍拍在线精品视频8848| 五月天丁香视频| 97免费视频在线| 超碰成人福利| 2019日韩中文字幕mv| 国产v综合v亚洲欧| 青青草原国产视频| 欧美一区二区三区色| 国产黄大片在线观看画质优化| 国产欧美精品日韩| 国产亚洲欧美日韩在线观看一区二区| 国产 福利 在线| 99精品偷自拍| 青青草av在线播放| 亚洲级视频在线观看免费1级| 成人福利影视| 国产亚洲福利社区| 一区在线观看| 性色av蜜臀av色欲av| 午夜精品久久久久久不卡8050| 性一交一乱一精一晶| 久久久久久久一| 欧美1区2区3区4区| 国产综合免费视频| 欧美激情综合在线| 亚洲综合网av| 欧美成人久久久| 一区中文字幕电影| 日韩亚洲欧美视频| 91免费观看视频在线| 欧美超碰在线观看| 色噜噜狠狠色综合网图区| 四虎国产精品免费久久| 视频一区二区视频| 高清在线观看日韩| 天天操天天摸天天干| 一区二区三区视频免费在线观看| 成人亚洲综合| 91成人在线视频观看| 东方欧美亚洲色图在线| 自拍偷拍欧美亚洲| 国产亚洲综合久久| 成人黄色理论片| 欧美久久久久久久久久久久久久| 99久久精品国产麻豆演员表| 99久久久无码国产精品免费蜜柚| 这里只有精品久久| 深夜福利一区二区三区| 国产青青在线视频| 亚洲国产岛国毛片在线| 国产视频aaa| 欧美一区二区三区免费观看| 日韩久久久久| 人妻 丝袜美腿 中文字幕| 欧美性xxxxxx| h片在线免费| 美女被啪啪一区二区| 久久成人免费网| 日本中文字幕免费| 一本色道久久88综合日韩精品 | 三级精品在线观看| 久久人妻无码aⅴ毛片a片app| 亚洲第一av网| 成人在线高清| 久久久久久久久久久99| 中文字幕在线播放不卡一区| 欧美自拍偷拍第一页| 国产日韩亚洲欧美| 久久高清国产| 久久影院一区二区|