這篇文章給大家分享的是有關(guān)PHP中redis和memcache區(qū)別是什么的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括西塞山網(wǎng)站建設(shè)、西塞山網(wǎng)站制作、西塞山網(wǎng)頁(yè)制作以及西塞山網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,西塞山網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到西塞山省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
PHP中redis和memcache區(qū)別
PHP中memcached 和 redis 都很類(lèi)似:都是內(nèi)存型數(shù)據(jù)庫(kù),數(shù)據(jù)保存在內(nèi)存中,通過(guò)tcp直接存取,優(yōu)勢(shì)是速度快,并發(fā)高,缺點(diǎn)是數(shù)據(jù)類(lèi)型有限,查詢(xún)功能不強(qiáng),一般用作緩存。
那么題主說(shuō) memcached 的事情 redis 都可以做,那么為什么 memcached 還有人用?那是因?yàn)樗鼈儍烧卟⒉皇峭耆梢韵嗷ヌ娲模鼈円灿懈髯缘拈L(zhǎng)短優(yōu)缺點(diǎn):
Memcached
Memcached的優(yōu)點(diǎn):
Memcached可以利用多核優(yōu)勢(shì),單實(shí)例吞吐量極高,可以達(dá)到幾十萬(wàn)QPS(取決于key、value的字節(jié)大小以及服務(wù)器硬件性能,日常環(huán)境中QPS高峰大約在4-6w左右)。
適用于最大程度扛量,有效為服務(wù)器減壓。
支持直接配置為session handle。
配置維護(hù)的坑比較少。
Memcached的局限性:
數(shù)據(jù)結(jié)構(gòu)很簡(jiǎn)單單一,只支持簡(jiǎn)單的key/value數(shù)據(jù)結(jié)構(gòu),不像Redis可以支持豐富的數(shù)據(jù)類(lèi)型。
無(wú)法進(jìn)行持久化,數(shù)據(jù)不能備份,只能用于緩存使用,且重啟后數(shù)據(jù)全部丟失。
無(wú)法進(jìn)行數(shù)據(jù)同步,不能將MC中的數(shù)據(jù)遷移到其他MC實(shí)例中。
Memcached內(nèi)存分配采用Slab
Allocation機(jī)制管理內(nèi)存,value大小分布差異較大時(shí)會(huì)造成內(nèi)存利用率降低,并引發(fā)低利用率時(shí)依然出現(xiàn)踢出等問(wèn)題。需要用戶(hù)注重value設(shè)計(jì)。
memcached服務(wù)端原生不支持水平擴(kuò)展,必須在客戶(hù)端編寫(xiě)緩存分布策略來(lái)實(shí)現(xiàn)分布式緩存,并且由于無(wú)法進(jìn)行數(shù)據(jù)同步,因此生產(chǎn)環(huán)境中出現(xiàn)單機(jī)故障時(shí)可能會(huì)影響部分業(yè)務(wù)運(yùn)行。
Redis
Redis的優(yōu)點(diǎn):
支持多種數(shù)據(jù)結(jié)構(gòu),比如 string(字符串)、
list(雙向鏈表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基數(shù)估算)等等。
支持持久化操作,可以進(jìn)行aof及rdb數(shù)據(jù)持久化到磁盤(pán),從而進(jìn)行數(shù)據(jù)備份或數(shù)據(jù)恢復(fù)等操作,較好的防止數(shù)據(jù)丟失的手段。
支持通過(guò)Replication進(jìn)行數(shù)據(jù)復(fù)制,通過(guò)master-slave機(jī)制,可以實(shí)時(shí)進(jìn)行數(shù)據(jù)的同步復(fù)制,支持多級(jí)復(fù)制和增量復(fù)制,master-slave機(jī)制是Redis進(jìn)行HA的重要手段。
單線(xiàn)程請(qǐng)求,所有命令串行執(zhí)行,并發(fā)情況下不需要考慮數(shù)據(jù)一致性問(wèn)題。
支持pub/sub消息訂閱機(jī)制,可以用來(lái)進(jìn)行消息訂閱與通知。
支持簡(jiǎn)單的事務(wù)需求,但業(yè)界使用場(chǎng)景很少,并不成熟。
Redis的局限性:
Redis只能使用單線(xiàn)程,性能受限于CPU性能,故單實(shí)例CPU最高才可能達(dá)到5-6wQPS每秒(取決于數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)大小以及服務(wù)器硬件性能,日常環(huán)境中QPS高峰大約在1-2w左右)。
支持簡(jiǎn)單的事務(wù)需求,但業(yè)界使用場(chǎng)景很少,并不成熟,既是優(yōu)點(diǎn)也是缺點(diǎn)。
Redis在string類(lèi)型上會(huì)消耗較多內(nèi)存,可以使用dict(hash表)壓縮存儲(chǔ)以降低內(nèi)存耗用。
總結(jié)
在我看來(lái),Redis在很多方面具備數(shù)據(jù)庫(kù)的特征,或者說(shuō)就是一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),而Memcached只是簡(jiǎn)單的K/V緩存。
而且到底是用 redis 還是 memcached 這個(gè)還是看題主的需求,因?yàn)閱渭兪亲鼍彺娴脑?huà),memcached已經(jīng)足夠應(yīng)付絕大部分的需求,redis 的出現(xiàn)只是提供了一個(gè)更加好的選擇,但是不代表redis就能完全替代 memcached ,還是那句話(huà),看你的需求是怎么樣的。
按照技術(shù)的新舊來(lái)講,redis 比 memcached 還更加新,但是成熟醒來(lái)說(shuō),memcached 應(yīng)該更加好,再說(shuō)現(xiàn)在潮流也有開(kāi)始轉(zhuǎn)投 MongoDB了,因?yàn)閞edis 的數(shù)據(jù)庫(kù)特征,mongodb更勝一籌。
很多公司的緩存策略中使用memcached的還是占大多數(shù)的,再者是redis,最后才是mongodb,發(fā)現(xiàn)沒(méi)有,最新的技術(shù)在公司團(tuán)隊(duì)的應(yīng)用還是需要時(shí)間的,舊的技術(shù)策略還是很多公司團(tuán)隊(duì)在用,因?yàn)榧夹g(shù)成型而且穩(wěn)定性要好,這也是memcached比redis要被提及的更多的原因。
感謝各位的閱讀!關(guān)于PHP中redis和memcache區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
本文名稱(chēng):PHP中redis和memcache區(qū)別是什么
文章位置:http://chinadenli.net/article48/joioep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站策劃、定制開(kāi)發(fā)、響應(yīng)式網(wǎng)站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)