成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊數據存儲系統Couchbase與Redis

數據庫 Redis
Redis 和Couchbase都是基于內存的數據存儲系統。其中,Couchbase是高性能,高伸縮性和高可用的分布式緩存系統;Redis是一個開源的內存數據結構存儲系統。

背景

Redis 和Couchbase都是基于內存的數據存儲系統。在它們各自的官方描述中,Couchbase是高性能,高伸縮性和高可用的分布式緩存系統;Redis是一個開源的內存數據結構存儲系統。

Couchbase

介紹

2012年2月,CouchOne與Membase合并,Couchbase基于Membase與CouchDB開發了一款新產品。 CouchBase是一款開源的、分布式的、面向文檔的NoSQL數據庫,主要用于分布式緩存和數據存儲領域,Membase 是 NoSQL 家族的一個新的重量級的成員,它是個鍵/值、持久化、可伸縮的解決方案,使用了memcached wire協議。CouchOne支持CouchDB。CouchDB是個文檔數據庫,提供了端到端的復制方法,這對于移動與分布在不同位置的數據中心來說是很有用的。CouchBase能夠通過manage cache提供快速的亞毫米級別的k-v存儲操作,并且提供快速的查詢和其功能強大的能夠指定SQL-like查詢的查詢引擎。Couchbase是一個較新的、發展迅速的nosql數據庫技術。

特點

couchbase是一個非關系型數據庫,它實際上是由couchdb+membase組成,所以它既能像couchdb那樣存儲json文檔,也能像membase那樣高速存儲鍵值對。主要有以下幾個特點:

  • 速度快:由于是內存優先的高性能設計,所有的讀寫操作都是直接操作內存,因此速度非常快。
  • 高可用:主要從兩個方面,一個是它自帶集群方案,支持多副本模式,另一個是它自帶持久化方案,可以設置定時把數據異步寫到文件系統上。
  • 配置使用方便:安裝后自帶web管理臺,可以在管理臺上對集群、桶、索引、搜索等進行管理和操作,大量減輕運維的工作,使用簡單。
  • 快速構建:Couchbase 使開發人員能夠構建響應迅速且靈活的云、移動和邊緣計算應用程序,這些應用程序可以輕松擴展。

數據模型

Couchbase 數據模型基于 JSON,它支持基本的數據類型,例如數字和字符串;和復雜類型,例如嵌入式文檔和數組,單個Document通常代表應用程序代碼中對象的單個實例。一個Document可能被認為等同于關系型數據庫中的一行;每個Document的屬性都相當于一列。然而,Couchbase 提供了比關系數據庫更大的靈活性,因為它可以存儲具有不同模式的 JSON 文檔。Document可以包含嵌套結構,這允許開發人員表達多對多關系,而不需要引用或join表。

buckets

buckets是couchbase中組織數據的一種方式,類似于關系型數據庫中的databse,一個集群最多可以創建30個buckets。每個存儲buckets必須指定為以下三種類型之一。

  • Couchbase buckets:這些類型數據持久存儲在內存和硬盤中。它們允許使用DCP(Database Change Protocol) 自動復制數據以實現高可用性;并通過XDCR (Cross Data Center Replication)跨多個集群動態擴展。
  • Ephemeral buckets:這是 Couchbase buckets的替代方案,可在不需要持久性時使用。數據僅在內存中。
  • Memcached buckets:只存儲在內存中,遵循Memcached協議,現在已經棄用。

同步協議

DCP (Database Change Protocol),DCP 協議是一個高效的二進制協議,它主要用于集群內的數據復制、索引復制、備份數據等等。主要概念有以下幾點:

  • 有序復制,基于每個vbucket存在一個順序序列號,同步時根據序列號進行更新。
  • 重啟恢復,當同步連接中斷后,重新連接后,會對沖突數據進行恢復。
  • 一致性,使用快照數據同步數據統一性。
  • 內存間復制。

XDCR (Cross Data Center Replication),XDCR提供了多個有效vbucket的數據的復制,主要用于跨數據中心的多集群間的復制,可以跨版本復制。主要概念有以下幾點:

  • 基于bucket復制,兩個集群的同一個bucket可以實現單向或者雙向復制。
  • 通過DCP協議保持持續性復制,一個XDCR連接中包括多個DCP數據流。這些流可以根據不同的分區對目的集群進行同步復制。
  • 支持多種集群拓撲復制。集群間可以通過單向,雙向復制。多個集群可以實現1對1,1對多,多對1等的集群復制拓撲圖。
  • 安全復制。數據中心見傳輸數據可以使用SSL進行加密。
  • 最終一致性和解決數據沖突的能力。當出現沖突數據,會使用元數據的序列值,CAS值,文檔標簽和過期時間限制對數據進行沖突解決。

服務

Couchbase 服務器提供以下服務:

  • Data service(數據服務):數據服務提供完全集成的內存緩存層,提供高速數據訪問,支持鍵指定的數據項的存儲、設置和檢索。
  • Query service(查詢服務):類sql查詢語言獲取結果,還可以針對數據定義(定義索引)和數據操作(添加或刪除數據)發出查詢。
  • Index service(索引服務):創建索引,為Analytics和Query使用,索引服務支持為存儲在 Couchbase 集群中的項目,創建主索引和二級索引。
  • Analytics service(分析服務):分析服務提供并行數據管理功能,允許運行復雜的分析查詢,適用于大數量,運行時間長,資源消耗比較大。
  • Search Service (搜索服務):搜索服務為集群數據 提供全文索引和搜索引擎功能。
  • Event Service(事件服務):支持對數據更改的近乎實時的處理:代碼既可以響應文檔突變而執行,也可以按照計時器的調度執行。
  • Backup Service(備份服務):支持計劃完整和增量數據備份,既可以針對特定的單個存儲桶,也可以針對集群上的所有存儲桶。

Redis

介紹

Remote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統,它 是一個開源(BSD許可)的內存型數據存儲系統,支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的AP以及豐富的數據結構,它可以用作數據庫、緩存和消息中間件。并支持事務、發布訂閱、lua腳本、lru驅動事件、過期機制、自動故障轉移等多種功能,由于Redis 是用ANSI C編寫的,可在大多數 POSIX 系統(如 Linux、*BSD 和 OS X)中運行,無需外部依賴。

特點

  • 內存數據庫,速度快,也支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
  • Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
  • Redis支持數據的備份,即master-slave模式的數據備份。
  • Redis的所有數據存儲在內存中,對數據的更新將異步地保存到磁盤上。
  • 功能豐富。除了支持五種數據結構之外,還支持事務、流水線、發布/訂閱、消息隊列等功能。
  • (服務架構)支持高可用和分布式。

持久化

redis 提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。

  • RDB,簡而言之,就是在不同的時間點,將 redis 存儲的數據生成快照并存儲到磁盤等介質上。
  • AOF,則是換了一個角度來實現持久化,那就是將 redis 執行過的所有寫指令記錄下來,在下次 redis 重新啟動時,只要把這些寫指令從前到后再重復執行一遍,就可以實現數據恢復了。

其實 RDB 和 AOF 兩種方式也可以同時使用,在這種情況下,如果 redis 重啟的話,則會優先采用 AOF 方式來進行數據恢復,這是因為 AOF 方式的數據恢復完整度更高。如果你沒有數據持久化的需求,也完全可以關閉 RDB 和 AOF 方式,這樣的話,redis 將變成一個純內存數據庫,就像 memcache 一樣。

集群管理

Redis在3.0版本以后開始支持集群,經過中間幾個版本的不斷更新優化,最新的版本集群功能已經非常完善,Redis 集群是一個提供在多個Redis間節點間共享數據的程序集,集群節點共同構建了一個去中心化的網絡,集群中的每個節點擁有平等的身份,節點各自保存各自的數據和集群狀態。節點之間采用Gossip協議進行通信,保證了節點狀態的信息同步。Redis 集群數據通過分區來進行管理,每個節點保存集群數據的一個子集。數據的分配采用一種叫做哈希槽(hash slot)的方式來分配,和傳統的一致性哈希不太相同。Redis 集群有16384個哈希槽,每個key通過CRC16校驗后對16384取模來決定放置哪個槽。為了使在部分節點失敗或者大部分節點無法通信的情況下集群仍然可用,集群使用了主從復制模型。讀取數據時,根據一致性哈希算法到對應的 master 節點獲取數據,如果master 掛掉之后,會啟動一個對應的 salve 節點來充當 master 。在redis3.0以前的版本要實現集群一般是借助哨兵sentinel工具來監控master節點的狀態,如果master節點異常,則會做主從切換,將某一臺slave作為master,哨兵的配置略微復雜,并且性能和高可用性等各方面表現一般,特別是在主從切換的瞬間存在訪問瞬斷的情況,而且哨兵模式只有一個主節點對外提供服務,沒法支持很高的并發,且單個主節點內存也不宜設置得過大,否則會導致持久化文件過大,影響數據恢復或主從同步的效率。

總結

其實不論是在大塊數據還是大數據量的處理上,Couchbase都要優于Redis,很多平臺都是采用Couchbase來管理數千萬熱數據。所以,如果緩存大多數情況下僅僅需要提供數據新增和查詢操作,那Couchbase基于文檔類型的存儲結構能夠始終如一地為提供亞毫秒的查詢體驗,對于預定義的數據類型你還可以通過創建索引進一步優化性能,這種情況下,Couchbase無疑是你更好的選擇。

  • Redis支持服務器端的數據操作:Redis相比Couchbase來說,擁有更多的數據結構和并支持更豐富的數據操作,通常在Couchbase里,你需要將數據拿到客戶端來進行類似的修改再set回去(你需要先先通過get方法從服務器讀取數據文檔,并將文檔反序列化為json對象,之后修改json對象對應屬性,再通過set方法將數據寫入服務器,序列化后進行存儲)。這大大增加了網絡IO的次數和傳輸中的數據體積。在Redis中,這些復雜的操作通常和一般的GET/SET一樣高效。
  • 內存使用效率對比:使用簡單的key-value存儲的話,Couchbase的內存利用率更高,而Redis采用hash結構來做key-value存儲,由于其組合式的壓縮,其內存利用率會高于Couchbase。所以,如果需要緩存能夠支持更復雜的數據結構和更頻繁數據的部分更新操作,那么Redis會是不錯的選擇。(下文會在關于數據存儲模型來證明這一點)。
  • 性能對比:由于Redis只使用單核,而Couchbase可以使用多核,所以平均每一個核上Redis在存儲小數據時比Couchbase性能更高。而在100k以上的數據中,Couchbase性能要高于Redis,雖然Redis最近也在存儲大數據的性能上進行優化,但是比起Couchbase,還是稍有遜色。
責任編輯:姜華 來源: 今日頭條
相關推薦

2024-01-15 16:51:03

Redis數據存儲

2020-03-04 17:37:09

存儲系統硬件層

2017-07-04 10:58:57

SAN存儲網絡存儲系統架構

2018-01-31 08:44:20

數據存儲存儲設備存儲系統

2021-06-18 06:00:31

存儲系統

2018-09-29 14:08:04

存儲系統分布式

2012-09-04 13:58:50

存儲海量存儲華為

2015-08-27 09:30:05

2019-07-05 15:01:32

區塊鏈系統分布式存儲

2018-03-07 10:35:45

云計算存儲系統

2018-01-19 08:35:47

存儲系統SAS

2017-11-08 11:22:46

存儲趨勢系統

2018-05-24 17:24:35

UCloudUMStor存儲

2017-12-18 10:47:04

分布式存儲數據

2010-07-02 10:08:12

BigtableGoogle

2017-11-15 09:17:42

數據中心雙層存儲

2017-09-04 08:49:17

存儲原理架構

2023-01-03 07:57:27

2017-04-14 09:48:25

分布式存儲系統

2018-01-22 09:08:14

存儲系統性能帶寬
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品欧美在线观看 | 91精品国产色综合久久 | 色婷婷综合网 | 国产亚洲一区二区三区 | 精品国产一区二区三区性色av | 另类专区成人 | 国产美女在线观看 | 看亚洲a级一级毛片 | 91精品国产手机 | 2019精品手机国产品在线 | 91婷婷韩国欧美一区二区 | 日韩1区| jdav视频在线观看免费 | 久久草在线视频 | 国产高清一区二区三区 | 国产区在线| 草樱av| 亚洲 自拍 另类 欧美 丝袜 | 久久性色 | 一区二区三区四区国产 | 久久精品亚洲精品国产欧美 | 亚洲成a人片 | 夜夜骚视频 | 久久久久国色av免费观看性色 | 精品少妇一区二区三区日产乱码 | 成人在线电影网站 | 国产成人在线播放 | av免费看片 | 久热爱 | 综合久久久| 日韩精品一区二区三区 | 精品欧美一区二区三区久久久 | 国产第1页 | 国产在线观看一区二区三区 | 天天操天天天干 | 精品成人佐山爱一区二区 | 2021天天干夜夜爽 | 国产a一区二区 | 亚洲男人天堂2024 | 国产高清免费视频 | 日韩视频在线一区二区 |