Redis ORM是一個可怕的主意嗎? -DEV社群
我們的應用處理許多資料,這些資料的變動速度非常快。我們的主資料庫(MySQL)根本無法跟上,因此我們在Redis中儲存了很多“當前狀態”資料。
現在,我們使用JSON對物件進行反序列化並儲存整個物件。這導致了幾個問題,因此我們將切換為單獨儲存每個欄位。用於管理所有這些欄位的程式碼很快就會變得棘手,因此我正在考慮為Redis構建通用ORM。其中一些已經存在,但沒有我需要的所有功能(例如,具有管道的事務)和鎖。
這是一個可怕的主意嗎?我只是在構建一種我不知道的其他地方已經存在的產品嗎?
回答:
1.為了避免維護兩個不同儲存之間的資料一致性的巨大痛苦。看一下Apache Ignite資料網格。使用它可以獲得以下好處:
- 透明快取
- 訪問資料作為鍵值儲存
- 使用分散式SQL查詢訪問與關聯式資料庫相同的資料
- 全面的交易支援
- 在儲存和效能方面接近線性水平可擴充套件性
- 每個“表”(Ignite術語為“快取”)的可調冗餘和一致性特徵
它還提供其他服務,例如佇列,釋出訂閱,分散式計算,內建檔案系統以及更多有用的東西。
2. 我認為為該用例構建的MongoDB與像Marshal.ts這樣的高效能序列化器/ ORM結合起來最適合這裡。儘管Redis可用於許多用例,但我認為這在效能,可維護性和其他功能(例如查詢資料)方面不會勝過MongoDB。
3.如果要使用Redis作為文件(物件)的儲存引擎,為什麼不使用像mongoDB這樣的noSQL文件資料庫並使用記憶體中的引擎(如果使用ssd的速度不足以僅查詢鍵),並使用該工具經過良好測試的資料庫。
我認為最好是找到合適的工具而不是修改工具,而Redis是一個出色的鍵/值資料庫,但是如果您要擴充套件功能,也許是更合適的工具。
相關文章
- 【轉載】微服務是個壞主意嗎?微服務
- 學《動森》在遊戲里加入「炒股」,是個好主意嗎?遊戲
- API優先(API-first)是一個壞主意! - stilkovAPI
- Eventloop不可怕,可怕的是遇上PromiseOOPPromise
- 不把C作為第一門語言是個好主意麼?
- 為什麼在 JavaScript 中使用 getter 和 setter 是一個壞主意JavaScript
- IT畢業生一紙空白並不可怕 可怕的是沒有潛力
- 為什麼說集中管理資料是個壞主意?
- Angular2是可怕的Angular
- UX設計指南 - DEV社群UXdev
- 遊戲炸服並不可怕,可怕的是你被嚇傻了遊戲
- 效能竟然再提升一倍!Redis的一個例項有多快?- keydb.devRedisdev
- ORM 是一種討厭的反模式ORM模式
- Redis的問題?這是一個很好的起點。Redis
- 圖靈社群的一個BUG圖靈
- application.yml&dev&redisAPPdevRedis
- 手把手教你寫一個java的orm(一)JavaORM
- 一個基於xml的超級orm框架-世界是由懶人創造的。XMLORM框架
- 如何做好一個ORM框架ORM框架
- SSL證書是一個域名一個證書嗎?多個域名能用一張SSL證書嗎?
- 告訴你 Redis 是一個牛逼貨Redis
- 您的客戶是一個技術威脅嗎?
- Linux Mint : 會是另一個新的 Ubuntu 嗎?LinuxUbuntu
- 你是一個優秀的專案經理人嗎 (轉)
- Redis快取篇(一)Redis是如何工作的Redis快取
- 函式性純UI元件:morphonent - DEV社群函式UI元件dev
- 微軟的一個補丁,讓所有的應用當機,可怕微軟
- ORM是明顯的反模式ORM模式
- 你是一個工資太低的程式設計師嗎?程式設計師
- 手把手教你寫一個java的orm(三)JavaORM
- 手把手教你寫一個java的orm(五)JavaORM
- Python下ORM的一個設計舉例PythonORM
- 如何設計一個簡單的 C++ ORMC++ORM
- 一個初學者是如何製作移動端B站畫友社群的
- 可怕的甲醛
- HTML5會是下一個風口嗎?HTML
- eMarketer:通過網路影響男性購買護理品或許是個好主意
- 程式設計師是一個需要天賦的職業嗎?程式設計師