国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Redis - 聊聊數據存儲系統Couchbase與Redis

聊聊數據存儲系統Couchbase與Redis

2022-03-07 22:36班博編程 Redis

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

聊聊數據存儲系統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與Redis

特點

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

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

聊聊數據存儲系統Couchbase與Redis

數據模型

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)中運行,無需外部依賴。

聊聊數據存儲系統Couchbase與Redis

特點

  • 內存數據庫,速度快,也支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
  • 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都要優于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,還是稍有遜色。

原文地址:https://www.toutiao.com/a7069413655611359744/

延伸 · 閱讀

精彩推薦
  • RedisRedis全量復制與部分復制示例詳解

    Redis全量復制與部分復制示例詳解

    這篇文章主要給大家介紹了關于Redis全量復制與部分復制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis爬蟲具有一定的參考學習...

    豆子先生5052019-11-27
  • Redisredis實現排行榜功能

    redis實現排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實現排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • Redis詳解Redis復制原理

    詳解Redis復制原理

    與大多數db一樣,Redis也提供了復制機制,以滿足故障恢復和負載均衡等需求。復制也是Redis高可用的基礎,哨兵和集群都是建立在復制基礎上實現高可用的...

    李留廣10222021-08-09
  • RedisRedis 事務知識點相關總結

    Redis 事務知識點相關總結

    這篇文章主要介紹了Redis 事務相關總結,幫助大家更好的理解和學習使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • RedisRedis如何實現數據庫讀寫分離詳解

    Redis如何實現數據庫讀寫分離詳解

    Redis的主從架構,能幫助我們實現讀多,寫少的情況,下面這篇文章主要給大家介紹了關于Redis如何實現數據庫讀寫分離的相關資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • RedisRedis的配置、啟動、操作和關閉方法

    Redis的配置、啟動、操作和關閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具...

    一線碼農5812019-11-18
主站蜘蛛池模板: 午夜视频精品 | 国产51人人成人人人人爽色哟哟 | 久久99综合久久爱伊人 | 91中文字幕在线观看 | 亚洲一区中文 | 欧美视频中文字幕 | 亚洲免费影院 | 精品成人一区 | 久久久国产精品视频 | 免费看黄色电影 | 午夜啪 | 婷婷亚洲五月 | 国产精品欧美一区二区三区 | 中文字幕高清在线播放 | 国产伦乱| 国产免费视频在线 | 毛片综合 | 国产精品99久久久久久久vr | 亚洲一区二区三区四区在线 | 国产片在线观看 | 国内精品久久久 | 欧美精品不卡 | www.天天操 | 综合网激情 | 欧美在线小视频 | 一性一交一色生活片 | 欧美与黑人午夜性猛交久久久 | 久久激情久久 | 精品国产乱码一区二区三区 | 伊人春色在线播放 | 国产 欧美 日韩 一区 | 国产精品99久久久久久动医院 | 免费三级国产 | 亚洲免费在线视频 | 欧美三级在线播放 | www.日韩视频 | av免费网站 | 一本大道色卡1卡2卡3 | 欧美精产国品一二三区 | 欧美精品一区二区三区四区 | 亚洲精品日韩综合观看成人91 |