日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试系列12 redis和memcached有什么区别

發(fā)布時間:2024/9/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试系列12 redis和memcached有什么区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(1)redis和memcached有啥區(qū)別

?

這個事兒吧,你可以比較出N多個區(qū)別來,但是我還是采取redis作者給出的幾個比較吧

?

1)Redis支持服務器端的數(shù)據(jù)操作:Redis相比Memcached來說,擁有更多的數(shù)據(jù)結(jié)構(gòu)和并支持更豐富的數(shù)據(jù)操作,通常在Memcached里,你需要將數(shù)據(jù)拿到客戶端來進行類似的修改再set回去。這大大增加了網(wǎng)絡IO的次數(shù)和數(shù)據(jù)體積。在Redis中,這些復雜的操作通常和一般的GET/SET一樣高效。所以,如果需要緩存能夠支持更復雜的結(jié)構(gòu)和操作,那么Redis會是不錯的選擇。

?

2)內(nèi)存使用效率對比:使用簡單的key-value存儲的話,Memcached的內(nèi)存利用率更高,而如果Redis采用hash結(jié)構(gòu)來做key-value存儲,由于其組合式的壓縮,其內(nèi)存利用率會高于Memcached。

?

3)性能對比:由于Redis只使用單核,而Memcached可以使用多核,所以平均每一個核上Redis在存儲小數(shù)據(jù)時比Memcached性能更高。而在100k以上的數(shù)據(jù)中,Memcached性能要高于Redis,雖然Redis最近也在存儲大數(shù)據(jù)的性能上進行優(yōu)化,但是比起Memcached,還是稍有遜色。

?

4)集群模式:memcached沒有原生的集群模式,需要依靠客戶端來實現(xiàn)往集群中分片寫入數(shù)據(jù);但是redis目前是原生支持cluster模式的,redis官方就是支持redis cluster集群模式的,比memcached來說要更好

?

(2)redis的線程模型

?

1)文件事件處理器


redis基于reactor模式開發(fā)了網(wǎng)絡事件處理器,這個處理器叫做文件事件處理器,file event handler。這個文件事件處理器,是單線程的,redis才叫做單線程的模型,采用IO多路復用機制同時監(jiān)聽多個socket,根據(jù)socket上的事件來選擇對應的事件處理器來處理這個事件。

?

如果被監(jiān)聽的socket準備好執(zhí)行accept、read、write、close等操作的時候,跟操作對應的文件事件就會產(chǎn)生,這個時候文件事件處理器就會調(diào)用之前關聯(lián)好的事件處理器來處理這個事件。

?

文件事件處理器是單線程模式運行的,但是通過IO多路復用機制監(jiān)聽多個socket,可以實現(xiàn)高性能的網(wǎng)絡通信模型,又可以跟內(nèi)部其他單線程的模塊進行對接,保證了redis內(nèi)部的線程模型的簡單性。

?

文件事件處理器的結(jié)構(gòu)包含4個部分:多個socket,IO多路復用程序,文件事件分派器,事件處理器(命令請求處理器、命令回復處理器、連接應答處理器,等等)。

?

多個socket可能并發(fā)的產(chǎn)生不同的操作,每個操作對應不同的文件事件,但是IO多路復用程序會監(jiān)聽多個socket,但是會將socket放入一個隊列中排隊,每次從隊列中取出一個socket給事件分派器,事件分派器把socket給對應的事件處理器。

?

然后一個socket的事件處理完之后,IO多路復用程序才會將隊列中的下一個socket給事件分派器。文件事件分派器會根據(jù)每個socket當前產(chǎn)生的事件,來選擇對應的事件處理器來處理。

?

2)文件事件

?

當socket變得可讀時(比如客戶端對redis執(zhí)行write操作,或者close操作),或者有新的可以應答的sccket出現(xiàn)時(客戶端對redis執(zhí)行connect操作),socket就會產(chǎn)生一個AE_READABLE事件。

?

當socket變得可寫的時候(客戶端對redis執(zhí)行read操作),socket會產(chǎn)生一個AE_WRITABLE事件。

?

IO多路復用程序可以同時監(jiān)聽AE_REABLE和AE_WRITABLE兩種事件,要是一個socket同時產(chǎn)生了AE_READABLE和AE_WRITABLE兩種事件,那么文件事件分派器優(yōu)先處理AE_REABLE事件,然后才是AE_WRITABLE事件。

?

3)文件事件處理器

?

如果是客戶端要連接redis,那么會為socket關聯(lián)連接應答處理器

如果是客戶端要寫數(shù)據(jù)到redis,那么會為socket關聯(lián)命令請求處理器

如果是客戶端要從redis讀數(shù)據(jù),那么會為socket關聯(lián)命令回復處理器

?

4)客戶端與redis通信的一次流程

?

在redis啟動初始化的時候,redis會將連接應答處理器跟AE_READABLE事件關聯(lián)起來,接著如果一個客戶端跟redis發(fā)起連接,此時會產(chǎn)生一個AE_READABLE事件,然后由連接應答處理器來處理跟客戶端建立連接,創(chuàng)建客戶端對應的socket,同時將這個socket的AE_READABLE事件跟命令請求處理器關聯(lián)起來。

?

當客戶端向redis發(fā)起請求的時候(不管是讀請求還是寫請求,都一樣),首先就會在socket產(chǎn)生一個AE_READABLE事件,然后由對應的命令請求處理器來處理。這個命令請求處理器就會從socket中讀取請求相關數(shù)據(jù),然后進行執(zhí)行和處理。

接著redis這邊準備好了給客戶端的響應數(shù)據(jù)之后,就會將socket的AE_WRITABLE事件跟命令回復處理器關聯(lián)起來,當客戶端這邊準備好讀取響應數(shù)據(jù)時,就會在socket上產(chǎn)生一個AE_WRITABLE事件,會由對應的命令回復處理器來處理,就是將準備好的響應數(shù)據(jù)寫入socket,供客戶端來讀取。

?

命令回復處理器寫完之后,就會刪除這個socket的AE_WRITABLE事件和命令回復處理器的關聯(lián)關系。

?

(3)為啥redis單線程模型也能效率這么高?

?

1)純內(nèi)存操作

2)核心是基于非阻塞的IO多路復用機制

3)單線程反而避免了多線程的頻繁上下文切換問題(百度)

轉(zhuǎn)載于:https://www.cnblogs.com/xiufengchen/p/11258930.html

總結(jié)

以上是生活随笔為你收集整理的面试系列12 redis和memcached有什么区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆精品国产精华精华液好用吗 | 久草成人网| chinesepron hd videos国产91 | 亚洲成人av| 国产精欧美一区二区三区白种人 | 99久久久国产精品免费蜜臀 | 亚洲综合av网| 亚洲免费视频一区二区 | 涩涩资源站 | 欧美成人一二三 | 亚洲一区天堂 | 亚洲三区在线观看无套内射 | 拔擦8x成人一区二区三区 | 蜜臀av在线播放 | 九色视频网站 | 成人免费a视频 | 182av| 亚洲理论中文字幕 | 99热这里只有精品久久 | 久久精品人人 | 亚洲黄色在线播放 | 男人和女人搞鸡 | 久久亚洲精品国产 | 国产乱子伦视频一区二区三区 | 亚洲操一操 | 欧美成人免费高清视频 | av香港经典三级级 在线 | 日本免费一区二区三区最新 | 天天想夜夜操 | 新av在线| 欧美三级视频 | 欧美日韩在线a | 欧美3p在线观看 | 欧美日本黄色 | 男女激情免费网站 | 密色av | 日韩一级中文字幕 | 爱操视频| 久久中文字幕高清 | 久久久久国色av免费观看性色 | 国产精品爱啪在线线免费观看 | 波多野结衣免费视频观看 | 亚洲黄色片在线观看 | 极品销魂美女少妇尤物 | 亚洲成人黄色网址 | 强睡邻居人妻中文字幕 | 国产jk精品白丝av在线观看 | 色资源在线观看 | 韩国精品视频 | 国产九色在线播放九色 | 国产精品300页 | 国模无码国产精品视频 | 999国产精品亚洲77777 | 人人爽人人草 | 精品成人av一区二区三区 | jizz免费视频 | 波多野结衣av在线观看 | 国产学生美女无遮拦高潮视频 | 久久影视一区二区 | 伊人22综合| 国产精品888 | 免费在线播放av | 国产午夜福利一区 | 黄色一及片 | 村上里沙番号 | 欧美一区亚洲 | 日韩欧美国产一区二区在线观看 | 制服.丝袜.亚洲.中文.综合 | 丰满少妇aaaaaa爰片毛片 | 欧美精品免费播放 | 一本大道一区二区 | 午夜黄色福利视频 | 熟妇高潮喷沈阳45熟妇高潮喷 | 人人草在线观看 | 国产成人传媒 | 国产91久久精品一区二区 | 国产淫视频 | 久久精品无码专区免费 | 99热这里是精品 | 狠狠激情 | 亚洲免费在线观看av | 亚洲人成免费电影 | 无套在线观看 | 亚洲男人的天堂在线观看 | 制服丝袜在线一区 | 91视频综合网 | 欧美亚洲二区 | av激情网站 | 中文字幕视频网站 | 又黄又爽的视频在线观看 | 成人免费精品视频 | 亚洲区自拍偷拍 | 韩国一区二区三区视频 | 日韩亚洲欧美精品 | 经典毛片 | 亚洲天堂高清 | 成人夜夜 | 久久2019| 成人小视频在线 |