女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

redis、memcache原理對比

lhl545545 ? 來源:電子發燒友網 ? 2018-02-09 15:31 ? 次閱讀

memcache、redis原理對比

一、問題:

數據庫表數據量極大(千萬條),要求讓服務器更加快速地響應用戶的需求。

二、解決方案:

1.通過高速服務器Cache緩存數據庫數據

2.內存數據庫

(這里僅從數據緩存方面考慮,當然,后期可以采用Hadoop+HBase+Hive等分布式存儲分析平臺)

三、主流解Cache和數據庫對比:

redis、memcache原理對比

上述技術基本上代表了當今在數據存儲方面所有的實現方案,其中主要涉及到了普通關系型數據庫(MySQL/PostgreSQL),NoSQL數據庫(MongoDB),內存數據庫(Redis),內存Cache(Memcached),我們現在需要的是對大數據表仍保持高效的查詢速度,普通關系型數據庫是無法滿足的。而MongoDB其實只是一種非關系型數據庫,其優勢在于可以存儲海量數據,具備強大的查詢功能,因此不宜用于緩存數據的場景。

從以上各數據可知,對于我們產品最可行的技術方案有兩種:

1.Memcached 內存Key-Value Cache

2.Redis 內存數據庫

四、下面重點分析Memcached和Redis兩種方案:

4.1 Memcached介紹

Memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度,現在已被LiveJournal、hatena、Facebook、Vox、LiveJournal等公司所使用。

4.2 Memcached工作方式分析

許多Web應用都將數據保存到 RDBMS中,應用服務器從中讀取數據并在瀏覽器中顯示。 但隨著數據量的增大、訪問的集中,就會出現RDBMS的負擔加重、數據庫響應惡化、 網站顯示延遲等重大影響。Memcached是高性能的分布式內存緩存服務器,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web等應用的速度、 提高可擴展性。下圖展示了memcache與數據庫端協同工作情況:

redis、memcache原理對比

其中的過程是這樣的:

1.檢查用戶請求的數據是緩存中是否有存在,如果有存在的話,只需要直接把請求的數據返回,無需查詢數據庫。

2.如果請求的數據在緩存中找不到,這時候再去查詢數據庫。返回請求數據的同時,把數據存儲到緩存中一份。

3.保持緩存的“新鮮性”,每當數據發生變化的時候(比如,數據有被修改,或被刪除的情況下),要同步的更新緩存信息,確保用戶不會在緩存取到舊的數據。

Memcached作為高速運行的分布式緩存服務器,具有以下的特點:

協議簡單

基于libevent的事件處理

內置內存存儲方式

memcached不互相通信的分布式

4.3 如何實現分布式可拓展性?

Memcached的分布式不是在服務器端實現的,而是在客戶端應用中實現的,即通過內置算法制定目標數據的節點,如下圖所示:

redis、memcache原理對比

4.4 Redis 介紹

Redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、 list(鏈表)、set(集合)和zset(有序集合)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步,當前 Redis的應用已經非常廣泛,國內像新浪、淘寶,國外像 Flickr、Github等均在使用Redis的緩存服務。

4.5 Redis 工作方式分析

Redis作為一個高性能的key-value數據庫具有以下特征:

多樣的數據模型

持久化

主從同步

Redis支持豐富的數據類型,最為常用的數據類型主要由五種:String、Hash、List、Set和Sorted Set。Redis通常將數據存儲于內存中,或被配置為使用虛擬內存。Redis有一個很重要的特點就是它可以實現持久化數據,通過兩種方式可以實現數據持久化:使用RDB快照的方式,將內存中的數據不斷寫入磁盤;或使用類似MySQL的AOF日志方式,記錄每次更新的日志。前者性能較高,但是可能會引起一定程度的數據丟失;后者相反。 Redis支持將數據同步到多臺從數據庫上,這種特性對提高讀取性能非常有益。

4.6 Redis如何實現分布式可拓展性?

2.8以前的版本:與Memcached一致,可以在客戶端實現,也可以使用代理,twitter已開發出用于Redis和Memcached的代理Twemproxy 。

3.0 以后的版本:相較于Memcached只能采用客戶端實現分布式存儲,Redis則在服務器端構建分布式存儲。Redis Cluster是一個實現了分布式且允許單點故障的Redis高級版本,它沒有中心節點,各個節點地位一致,具有線性可伸縮的功能。如圖給出Redis Cluster的分布式存儲架構,其中節點與節點之間通過二進制協議進行通信,節點與客戶端之間通過ascii協議進行通信。在數據的放置策略上,Redis Cluster將整個 key的數值域分成16384個哈希槽,每個節點上可以存儲一個或多個哈希槽,也就是說當前Redis Cluster支持的最大節點數就是16384

redis、memcache原理對比

五、綜合結論

應該說Memcached和Redis都能很好的滿足解決我們的問題,它們性能都很高,總的來說,可以把Redis理解為是對Memcached的拓展,是更加重量級的實現,提供了更多更強大的功能。具體來說:

1.性能上:

性能上都很出色,具體到細節,由于Redis只使用單核,而Memcached可以使用多核,所以平均每一個核上Redis在存儲小數據時比

Memcached性能更高。而在100k以上的數據中,Memcached性能要高于Redis,雖然Redis最近也在存儲大數據的性能上進行優化,但是比起 Memcached,還是稍有遜色。

2.內存空間和數據量大小:

MemCached可以修改最大內存,采用LRU算法。Redis增加了VM的特性,突破了物理內存的限制。

3.操作便利上:

MemCached數據結構單一,僅用來緩存數據,而Redis支持更加豐富的數據類型,也可以在服務器端直接對數據進行豐富的操作,這樣可以減少網絡IO次數和數據體積。

4.可靠性上:

MemCached不支持數據持久化,斷電或重啟后數據消失,但其穩定性是有保證的。Redis支持數據持久化和數據恢復,允許單點故障,但是同時也會付出性能的代價。

5.應用場景:

Memcached:動態系統中減輕數據庫負載,提升性能;做緩存,適合多讀少寫,大數據量的情況(如人人網大量查詢用戶信息、好友信息、文章信息等)。

Redis:適用于對讀寫效率要求都很高,數據處理業務復雜和對安全性要求較高的系統(如新浪微博的計數和微博發布部分系統,對數據安全性、讀寫要求都很高)。

六、需要慎重考慮的部分

1.Memcached單個key-value大小有限,一個value最大只支持1MB,而Redis最大支持512MB

2.Memcached只是個內存緩存,對可靠性無要求;而Redis更傾向于內存數據庫,因此對對可靠性方面要求比較高

3.從本質上講,Memcached只是一個單一key-value內存Cache;而Redis則是一個數據結構內存數據庫,支持五種數據類型,因此Redis除單純緩存作用外,還可以處理一些簡單的邏輯運算,Redis不僅可以緩存,而且還可以作為數據庫用

4.新版本(3.0)的Redis是指集群分布式,也就是說集群本身均衡客戶端請求,各個節點可以交流,可拓展行、可維護性更強大。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Redis
    +關注

    關注

    0

    文章

    384

    瀏覽量

    11312
  • memcache
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2525
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    【幸狐Omni3576邊緣計算套件試用體驗】Redis最新8.0.2版本源碼安裝及性能測試

    的結果進行對比。 一、Redis是什么 維基百科的介紹是: Redis是一個使用ANSI C編寫的開源、支持網絡、基于內存、分布式、可選持久性的鍵值對存儲數據庫。 Redis官網的
    發表于 06-03 01:28

    Redis 再次開源!

    “ ?Redis 現已采用 AGPLv3 開源許可證。? ” Redis CEO 的 Blog 以下是 Redis CEO Rowan Trollope 的 Blog: 像 AWS 和 GCP 這樣
    的頭像 發表于 05-06 18:26 ?302次閱讀

    redis三種集群方案詳解

    Redis中提供的集群方案總共有三種(一般一個redis節點不超過10G內存)。
    的頭像 發表于 03-31 10:46 ?536次閱讀
    <b class='flag-5'>redis</b>三種集群方案詳解

    Redis實戰筆記

    在目前的技術選型中,Redis 儼然已經成為了系統高性能緩存方案的事實標準,因此現在?Redis 也成為了后端開發的基本技能樹之一。 ? 基于上述情況,今天給大家分享一份?杰哥?親筆撰寫的內部
    的頭像 發表于 02-09 09:12 ?314次閱讀
    <b class='flag-5'>Redis</b>實戰筆記

    華為云 Flexus X 加速 Redis 案例實踐與詳解

    Redis 加速鏡像,更是為開發者提供了極大的便利。本文將詳細介紹如何利用華為云 Flexus X 實例自帶的 Redis 鏡像,快速部署并配置 Redis,以及通過實際案例展示其便捷性和高效性。 一、華為云 Flexus
    的頭像 發表于 01-23 17:52 ?265次閱讀
    華為云 Flexus X 加速 <b class='flag-5'>Redis</b> 案例實踐與詳解

    Redis Cluster之故障轉移

    1. Redis Cluster 簡介 Redis Cluster 是 Redis 官方提供的 Redis 集群功能。 為什么要實現 Redis
    的頭像 發表于 01-20 09:21 ?747次閱讀
    <b class='flag-5'>Redis</b> Cluster之故障轉移

    云服務器 Flexus X 實例,Docker 集成搭建 Redis 集群

    Redis 集群是一種分布式的 Redis 解決方案,能夠在多個節點之間分片存儲數據,實現水平擴展和高可用性。與傳統的主從架構不同,Redis 集群支持數據自動分片、主節點故障自動切換,并可以在多臺
    的頭像 發表于 01-13 13:37 ?308次閱讀
    云服務器 Flexus X 實例,Docker 集成搭建 <b class='flag-5'>Redis</b> 集群

    性能與可靠性并重,Flexus X 實例助力 Redis 三主三從集群高效運行

    前言 在追求極致性能與可靠性的道路上,Flexus X 實例以卓越的算力與智能調度,為 Redis 三主三從集群的高效運行保駕護航。此架構不僅實現了數據的高可用性,還通過負載均衡提升了整體性
    的頭像 發表于 01-07 17:21 ?351次閱讀
    性能與可靠性并重,Flexus X 實例助力 <b class='flag-5'>Redis</b> 三主三從集群高效運行

    華為云Flexus X實例,Redis性能加速評測及對比

    加速 Redis 的選項。本文旨在通過實際測試,展示華為云 Flexus X 實例在加速 Redis 方面的性能優勢,并與其他業界 U1 實例進行對比
    的頭像 發表于 12-29 15:47 ?422次閱讀
    華為云Flexus X實例,<b class='flag-5'>Redis</b>性能加速評測及<b class='flag-5'>對比</b>

    華為云 Flexus X 輕松實現 Redis 一主多從高效部署

    前言 ????????華為云 Flexus?X 是一款專為高性能計算設計的云服務器實例,其搭載的 X-Turbo 加速技術和智能應用調優算法,能夠大幅提升 Redis 的處理能力和響應速度。此外
    的頭像 發表于 12-27 13:45 ?436次閱讀
    華為云 Flexus X 輕松實現 <b class='flag-5'>Redis</b> 一主多從高效部署

    Redis使用重要的兩個機制:Reids持久化和主從復制

    今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個機制:Reids 持久化和主從復制。 我們都知道Redis是一個內存數據庫,在學習主從同步之前,我們首先要想到 Redis 是如何做數據
    的頭像 發表于 12-18 10:33 ?348次閱讀
    <b class='flag-5'>Redis</b>使用重要的兩個機制:Reids持久化和主從復制

    Redis緩存與Memcached的比較

    Redis和Memcached都是廣泛使用的內存數據存儲系統,它們主要用于提高應用程序的性能,通過減少對數據庫的直接訪問來加速數據檢索。以下是對Redis和Memcached的比較,涵蓋了它們的一些
    的頭像 發表于 12-18 09:33 ?501次閱讀

    nginx+lua+redis實現灰度發布

    作者:馬仁喜 前言: 授人以魚不如授人以漁 .先學會用,在學原理,在學創造,可能一輩子用不到這種能力,但是不能不具備這種能力。這篇文章主要是沉淀使用nginx+lua+redis實現灰度,當我們具備
    的頭像 發表于 12-17 10:01 ?367次閱讀

    恒訊科技分析:云數據庫rds和redis區別是什么如何選擇?

    云數據庫RDS(Relational Database Service)和Redis是兩種不同類型的數據庫服務,它們有各自的特點和適用場景: 1、數據模型:RDS是一種關系型數據庫服務,通常用于存儲
    的頭像 發表于 08-19 15:31 ?726次閱讀

    K8S學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis 集群

    前言 Redis 是在開發過程中經常用到的緩存中間件,為了考慮在生產環境中穩定性和高可用,Redis通常采用集群模式的部署方式。 在制定Redis集群的部署策略時,常規部署在虛擬機上的方式配置繁瑣
    的頭像 發表于 07-03 15:30 ?1125次閱讀
    K8S學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 <b class='flag-5'>Redis</b> 集群