亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分布式緩存能不能被用作NoSQL數據庫

發布時間:2021-09-10 08:00:20 來源:億速云 閱讀:93 作者:chen 欄目:數據庫

本篇內容介紹了“分布式緩存能不能被用作NoSQL數據庫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  分布式緩存能被用作NoSQL數據庫嗎

  InfoQ:你能否就分布式緩存解決方案與NoSQL數據庫做個對比?

  Greg Luck:分布式緩存通常會把數據放在內存里,用于降低延時。NoSQL數據庫是沒有R的DBMS(即沒有關系的數據庫管理系統),一般也缺乏對事務和其他高級特性的支持。對于不支持關系的系統,表關系的關聯是SQL里最麻煩的部分,這也正是NoSQL這個名字的起源。

  其中一種NoSQL數據庫是鍵值存儲。典型的例子包括Dynamo、Oracle NoSQL Database和Redis。緩存也是鍵值存儲,因此說這兩者是相關的。很多緩存實現能被配置為可持久化的,之所以很多時候不那么做,是因為緩存是要提升性能而不是做持久化。而NoSQL數據庫則與此相反,它是用來做持久化的。

  持久化緩存也可當作鍵值NoSQL數據庫來使用。NoSQL也提到了Big Data,通常是指比能放進一個單獨的RDBMS節點的量要大的數據,一般從幾TB到幾PB。

  分布式緩存通常用于降低事務性數據的延時,這些數據開始時并不大,但慢慢就會往Big Data這個方向發展。由于緩存將數據保存在內存里,這提高了存儲的成本,而且需要限制數據的大小。如果依賴于堆存儲,每個服務器節點可能只有可憐的2GB。如果依賴于分布式緩存,Ehcache還提供了堆外存儲,每臺服務器可以存儲幾百GB數據,可以用作TB級別的緩存。

  持久化、分布式的緩存可以適用于一些NoSQL的場景。NoSQL數據庫也可以應對一些緩存的場景,只是延時稍高而已。

  InfoQ:從架構角度來看,分布式緩存和NoSQL數據庫有什么相似之處嗎?

  Greg:它們都想提供優于RDBMS的TPS和可擴展性。為此,它們都在功能上做了簡化,拋開了那些麻煩的問題,比如表關聯、存儲過程和ACID事務。

  雖然Java緩存領域里有JSR 107,它為Spring和Java EE程序員提供了一套標準的緩存API,但是比起標準化接口,它們都更傾向于使用私有接口。

  它們都采用對客戶端透明的方式對數據進行分區,做向外擴展。非Java產品向上擴展做得也很好。擁有Terracotta BigMemory,我們在Java平臺上的向上擴展方面也做得很特別。最后,兩者都可以部署在常見的硬件和操作系統上,這讓它們都能理想地運行于云端。

  InfoQ:架構上這兩項技術又有何不同呢?

  Greg:NoSQL和RDBMS通常使用的是磁盤。磁盤是機械設備,延時很厲害,因為尋道時間是磁頭移動到正確的磁道的時間,讀寫時間依賴于磁盤的RPM。NoSQL嘗試優化磁盤的使用,例如,僅僅在磁頭當前位置追加日志,偶爾才刷新到磁盤上。相反,緩存主要都把數據放內存里。

  NoSQL和RDBMS的客戶端很薄(想想Thrift或JDBC),只是在網絡中傳輸數據,而像Ehcache這樣的緩存使用進程內存儲和遠程存儲,因此常用請求在本地就能被成功處理。在分布式緩存上下文中,每個應用程序服務器的進程內存儲中都會緩存熱點數據,增加服務器數量并不會增加網絡或后端的負載。

  RDBMS專注于成為通用的SOR(System of Record)。NoSQ希望成為某類特定數據類型的SOR,比如鍵值對、文檔、稀疏表(寬表)或圖。緩存著眼于性能,一般會與RDBMS或NoSQL數據庫結合使用,數據類型就是SOR。往往緩存中會存儲Web服務調用的結果,業務對象的計算結果,這個結果可能需要成百SOR調用才能得到。

  像Ehcache這樣的緩存部分運行在應用程序的操作系統進程里,部分運行在網絡那頭自己機器的進程里。但也不是全部分布式緩存都這樣:memcache就是一個例子,所有的數據都跨網絡存儲。

  InfoQ:哪類應用程序最適合這種方式?

  Greg:這還得從先前的問題說起,要將分布式緩存用于你現有的應用程序,通常只需要很小的工作量,而NoSQL則需要做很多事,還有大的架構變更。

  因此適用分布式緩存的第一類應用程序是現有系統,特別是有以下需要的:

  由于使用量或負載激增而需要向外擴展

  為達到SLA而需要有更低的延時

  為了將大型機這樣的昂貴基礎設施的使用減到最低

  減少Web服務調用而帶來的費用

  應對極端負載高峰(比如黑色星期五一樣的促銷)

  分布式緩存能被用作NoSQL數據庫嗎

  InfoQ:這種方式有什么局限么?

  Greg:緩存,置于內存之中,在大小上有制約,它們的技術局限受限于有多少內存給它們使用(下面還會具體展開說明)。

  緩存,就算它提供持久化功能,也未必算的上作為SOR的上選。緩存故意回避了備份到磁盤和從中還原的復雜功能,盡管也有簡單的。RDMBS在過去30年里開發了豐富的備份、還原、遷移、報表和ETL特性。而NoSQL則介于兩者之間。

  緩存提供了改變數據與訪問數據的編程API。NoSQL和RDBMS則提供了工具,可以執行腳本化語言(比如SQL、UnSQL和Thrift)。

  但關鍵一點是要記住緩存并不想成為你的SOR。它能輕松地與你的RDBMS和睦相處,為此它并不需要RDBMS所有用的復雜功能。

  InfoQ:以后分布式緩存解決方案、NoSQL數據庫和傳統RDBMS互相協同工作,你有何看法?

  Greg:速度大幅快于RDBMS,依賴于部署拓撲的NoSQL,還有數據訪問模式,分布式緩存可以位于這三者之間的任意位置。那些需要更低延時的人可以將緩存作為NoSQL的一個補充,就像現在對待RDBMS那樣。

  稍有不同的是,在你想將RDBMS擴展到多個節點時,經常會難于擴展,或者影響編程契約,或者受制于CAP做出權衡;而使用NoSQL,就算只使用一個節點,你也可以簡單地將其視為多節點安裝。如果是向上擴展就沒有這些問題。在RDBMS中,添加緩存是為了避免向外擴展會遇到的麻煩。通常緩存能解決系統的容量問題,你不用費太多力氣。因此當需要向外擴展時,加入緩存吧。

  對于NoSQL而言,內建了向外擴展的能力,在需要低延時的時候使用緩存吧。

“分布式緩存能不能被用作NoSQL數據庫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平昌县| 黔南| 吴江市| 嵊州市| 马鞍山市| 蒙阴县| 桐城市| 宁远县| 依安县| 合阳县| 无棣县| 镇康县| 新宁县| 芷江| 克山县| 龙井市| 延吉市| 渝中区| 额敏县| 麦盖提县| 商南县| 河南省| 神农架林区| 霍林郭勒市| 泗水县| 乾安县| 青阳县| 长宁区| 盐津县| 丹江口市| 建瓯市| 且末县| 宁南县| 宜宾市| 肇东市| 米泉市| 黄梅县| 金湖县| 广州市| 崇左市| 迁西县|