<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    1、線程問(wèn)題
        由于Redis只使用單核,而Memcached可以使用多核,所以平均每一個(gè)核上Redis在存儲(chǔ)小數(shù)據(jù)時(shí)比Memcached性能更高。而在100k以上的數(shù)據(jù)中,Memcached性能要高于Redis,雖然Redis最近也在存儲(chǔ)大數(shù)據(jù)的性能上進(jìn)行優(yōu)化,但是比起 Memcached,還是稍有遜色。

    因?yàn)?Redis 的操作都非常快速——它的數(shù)據(jù)全部在內(nèi)存里,完全不需要訪問(wèn)磁盤(pán)。至于并發(fā),Redis 使用多路 I/O 復(fù)用技術(shù),本身的并發(fā)效率不成問(wèn)題。

    當(dāng)然,單個(gè) Redis 進(jìn)程沒(méi)辦法使用多核(任一時(shí)刻只能跑在一個(gè) CPU 核心上),但是它本來(lái)就不是非常計(jì)算密集型的服務(wù)。如果單核性能不夠用,可以多開(kāi)幾個(gè)進(jìn)程。

    Redis 單線程-多路復(fù)用io模型

    2、內(nèi)存使用效率對(duì)比:
        使用簡(jiǎn)單的key-value存儲(chǔ)的話,Memcached的內(nèi)存利用率更高,而如果Redis采用hash結(jié)構(gòu)來(lái)做key-value存儲(chǔ),由于其組合式的壓縮,其內(nèi)存利用率會(huì)高于Memcached。
    3、數(shù)據(jù)類(lèi)型:
        Redis相比Memcached來(lái)說(shuō),擁有更多的數(shù)據(jù)結(jié)構(gòu)和并支持更豐富的數(shù)據(jù)操作,通常在Memcached 里,你需要將數(shù)據(jù)拿到客戶端來(lái)進(jìn)行類(lèi)似的修改再set回去。這大大增加了網(wǎng)絡(luò)IO的次數(shù)和數(shù)據(jù)體積。在Redis中,這些復(fù)雜的操作通常和一般的 GET/SET一樣高效。所以,如果需要緩存能夠支持更復(fù)雜的結(jié)構(gòu)和操作,那么Redis會(huì)是不錯(cuò)的選擇。
    4、安全機(jī)制
        memcached采用cas機(jī)制,而redis有事務(wù)機(jī)制。
    5、事件模型
        memcached采用了libevent事件模型,多線程模型可以發(fā)揮多核作用,Redis實(shí)現(xiàn)了自己的一套和libevent類(lèi)似的事件驅(qū)動(dòng)機(jī)制,兩者都采用了epoll通信模型和非阻塞機(jī)制。

        epoll是在2.6內(nèi)核中提出的,是之前的select和poll的增強(qiáng)版本。相對(duì)于select和poll來(lái)說(shuō),epoll更加靈活,沒(méi)有描述符限制。epoll使用一個(gè)文件描述符管理多個(gè)描述符,將用戶關(guān)系的文件描述符的事件存放到內(nèi)核的一個(gè)事件表中,這樣在用戶空間和內(nèi)核空間的copy只需一次。

     最后講講 為什么epoll會(huì)比select高效,主要從三方面來(lái)進(jìn)行論述。
            (1)elect對(duì)描述符狀態(tài)的改變是通過(guò)輪詢來(lái)進(jìn)行查找的;而epoll是當(dāng)描述符狀態(tài)發(fā)生改變時(shí)主動(dòng)進(jìn)行通知內(nèi)核,這就是所謂的Reactor事件處理機(jī)制。可以用“好萊塢原則”進(jìn)行描述:不要打電話給我們,我們會(huì)打電話通知你。相比之下,select的機(jī)制就好比面試結(jié)束后不停給面試官打電話詢問(wèn)面試結(jié)果。效率孰高孰低,可見(jiàn)一 斑。
            
           (2)select的文件描述符是使用鏈表進(jìn)行組織的;而epoll是使用紅黑樹(shù)這一高效數(shù)據(jù)結(jié)構(gòu)組織的。
            
           (3)select從內(nèi)核到用戶空間傳遞文件描述符上發(fā)送的信息是使用內(nèi)存復(fù)制的方式進(jìn)行的;而epoll是采用共享內(nèi)存的方式。  
    6、內(nèi)存管理方面
      Memcached使用預(yù)分配的內(nèi)存池的方式,使用slab和大小不同的chunk來(lái)管理內(nèi)存,Item根據(jù)大小選擇合適的chunk存儲(chǔ),內(nèi)存池的方式可以省去申請(qǐng)/釋放內(nèi)存的開(kāi)銷(xiāo),并且能減小內(nèi)存碎片產(chǎn)生,但這種方式也會(huì)帶來(lái)一定程度上的空間浪費(fèi),并且在內(nèi)存仍然有很大空間時(shí),新的數(shù)據(jù)也可能會(huì)被剔除,原因可以參考Timyang的文章:http://timyang.net/data/Memcached-lru-evictions/
      Redis使用現(xiàn)場(chǎng)申請(qǐng)內(nèi)存的方式來(lái)存儲(chǔ)數(shù)據(jù),并且很少使用free-list等方式來(lái)優(yōu)化內(nèi)存分配,會(huì)在一定程度上存在內(nèi)存碎片,Redis跟據(jù)存儲(chǔ)命令參數(shù),會(huì)把帶過(guò)期時(shí)間的數(shù)據(jù)單獨(dú)存放在一起,并把它們稱(chēng)為臨時(shí)數(shù)據(jù),非臨時(shí)數(shù)據(jù)是永遠(yuǎn)不會(huì)被剔除的,即便物理內(nèi)存不夠,導(dǎo)致swap也不會(huì)剔除任何非臨時(shí)數(shù)據(jù)(但會(huì)嘗試剔除部分臨時(shí)數(shù)據(jù)),這點(diǎn)上Redis更適合作為存儲(chǔ)而不是cache。
    7、redis并發(fā)

    Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)keyvalue存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。

    性能測(cè)試結(jié)果:

    SET操作每秒鐘 110000 次,GET操作每秒鐘 81000 次,服務(wù)器配置如下:

    Linux 2.6, Xeon X3320 2.5Ghz.

    stackoverflow 網(wǎng)站使用 Redis 做為緩存服務(wù)器。





    posted on 2015-04-05 05:45 abin 閱讀(576) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Redis

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲欧洲国产综合| 日韩电影免费在线| 亚洲午夜未满十八勿入网站2| 欧美激情综合亚洲一二区| 毛色毛片免费观看| 亚洲国产日韩a在线播放| 国产精品69白浆在线观看免费| 亚洲AV无码一区二区三区系列| 久久精品成人免费国产片小草| 精品亚洲视频在线观看| 国产免费久久精品丫丫| 亚洲精品国产精品乱码在线观看| 中文字幕不卡免费视频| 亚洲伦另类中文字幕| 亚洲综合免费视频| 亚洲欧洲国产综合AV无码久久| 国产美女在线精品免费观看| 蜜芽亚洲av无码一区二区三区| 亚洲 自拍 另类小说综合图区| 国产免费久久久久久无码| 亚洲av日韩av无码黑人| ww在线观视频免费观看| 久久精品熟女亚洲av麻豆 | 久久aa毛片免费播放嗯啊| 亚洲精品亚洲人成在线观看麻豆 | 日本免费污片中国特一级| 久久精品九九亚洲精品| 好爽…又高潮了毛片免费看 | 日韩国产欧美亚洲v片| 曰韩亚洲av人人夜夜澡人人爽| a毛片在线免费观看| 激情亚洲一区国产精品| 亚洲精品国产自在久久| 最近中文字幕大全免费视频| 亚洲国产精品成人AV在线| 久久久久亚洲精品中文字幕| 亚洲视频免费一区| caoporn成人免费公开| 亚洲国产成人综合| 久久久久亚洲爆乳少妇无| 真人做A免费观看|