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
- 為什麼說集中管理資料是個壞主意?
- 效能竟然再提升一倍!Redis的一個例項有多快?- keydb.devRedisdev
- UX設計指南 - DEV社群UXdev
- application.yml&dev&redisAPPdevRedis
- 遊戲炸服並不可怕,可怕的是你被嚇傻了遊戲
- 發現 ORM 方法 MorphToMany 的一個 BugORM
- 手把手教你寫一個java的orm(一)JavaORM
- GPT4有那麼可怕嗎?GPT
- 函式性純UI元件:morphonent - DEV社群函式UI元件dev
- 為何說「換電」不是個好主意?
- SSL證書是一個域名一個證書嗎?多個域名能用一張SSL證書嗎?
- 告訴你 Redis 是一個牛逼貨Redis
- 手把手教你寫一個java的orm(五)JavaORM
- 手把手教你寫一個java的orm(三)JavaORM
- Redis快取篇(一)Redis是如何工作的Redis快取
- 《展翅翱翔》會是下一個傳奇嗎?
- 可怕的甲醛
- 手把手教你寫一個Java的orm框架(4)JavaORM框架
- 手把手教你寫一個Java的orm框架(2)JavaORM框架
- 手把手教你寫一個Java的orm框架(1)JavaORM框架
- 手把手教你寫一個Java的orm框架(3)JavaORM框架
- 如何將Redis記憶體使用量降低一半? - DEVRedis記憶體dev
- 禁止散戶質押加密貨幣?這是一條可怕的監管之路!加密
- TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一個東西嗎?TCPHTTPKeep-Alive
- 剛剛,Python 3.10 正式釋出了!我發現了一個可怕的功能...Python
- 程式設計師是一個需要天賦的職業嗎?程式設計師
- 為什麼JVM平臺對於無伺服器FaaS來說是個壞主意? - frankelJVM伺服器
- 您是否真的需要實現前後端分離的API? -DEV社群後端APIdev
- 一個初學者是如何製作移動端B站畫友社群的
- 分散式系統中,級聯故障是最可怕的分散式
- 使用beego擼了一個社群Go
- 論一個自毀傾向社群的形成
- websocket握手成功會返回一個幹什麼狀態嗎?是200嗎?Web