[請益] Redis執行多行寫入問題
大家好 小弟是軟工菜鳥
目前有個專案的需求是,會在一段程式邏輯中
對資料庫進行多次讀取或寫入,中間牽涉到兩張表以上
因為需要每秒執行這段邏輯至少2次,怕用mysql會影響效能,於是考慮用Redis來做
但有查到Redis執行命令,即使用multi exec也並非原子性
所以假設現在Redis有5行寫入要執行,但是執行到一半伺服器掛掉
會不會導致資料只寫了一半的數據錯誤問題呢?
那這樣的業務情況就表示不適合用Redis了是嗎?
謝謝!
--
lua script?
很在意資料的正確性就還是應該用 RDBMS 才對,MySQL
沒那麼廢啦!有做讀寫分離嗎?
multi exec不就行了? 你從哪查到非原子性?
try catch?掛掉 rollback?
雖然伺服器掛掉不是你的問題,但是你要有備案處理
redis cluster瞭解一下,並且memory db本來就沒保證
感覺你要的不是Redis而是queuing system 像是rabbit mq
或是Kafka 之類的
上千TPS再來擔心吧
你的操作具體是什麼內容,系統設計沒有明確規格就沒辦法
給你正確的解法,每一種場景都有他的tradeoff
除非你的操作是mysql server memory cache裝不下的資料,
一定牽涉到實體硬碟讀取加上每秒兩次不間斷而且否則你都
是想太多直接mysql做就好了
真的要計較得話即使是RMDBS都有可能在crash的時候資料沒
有完整寫入硬碟導致你必須手動修復
原子性是存在邏輯層的,在實體世界,任何硬體操作都有可
能因為硬體失敗失去原子性
如果你不考慮硬體失敗,那麼直接用redis persistence to
disk沒有任何問題
因為RMDBS也是幫你塞了一層memory cache在硬碟寫入之前,
寫入之前就當機一樣會出問題
rdbms有那麼弱嗎
你真的要求資料絕對的完整性那就是用queue把一個操作紀
錄到任何一種載體最簡單就是DB,然後另一支程式根據queue
把一些資料寫到你需要的其他地方,再標示queue中的這個ta
sk已經被正確的寫入到其他位置
然後你可能跟同事或owner討論完就發現你的場景根本不需要
這麼嚴謹,量也沒那麼大,直接mysql一秒跑兩次就結案了,
也假設server hardware error不會好死不死造成data corru
ption
你是yangog4ever的分身嗎
不是喔
一般AP/DB同一台應該不需要考慮這個問題,過度設計了
queue+1
哪那麼爛,之前公司要取資料,一次就取一千萬筆,每五百筆
commit一次也沒當
我懷疑你本身有問題
每張表的資料多少?索引怎麼設?能不能分庫分表?預算
多少?
即時性? 為什麼每秒兩次?能不能用前端減少查詢量?
硬體規格? 壓力測試報告?
不講業務和環境,談任何技術都是耍流氓
一秒兩次 用MySQL沒問題,做讀寫分離就好,寫入包在一個 t
ransaction裡面
redis 可以做 lock
每秒2次的頻率為啥會擔心MySQL影響效能?
RDBMS很強啦,基本schema有做好,讀寫node分離,再不行
切table partition,可以應付90%以上的場景
一個table幾百萬條record都不會是問題
一個table 幾十億都看過...
每秒兩次…
謝謝各位前輩回覆!會去找相關資料來看,目前還是選擇用一般關聯式資料庫來做
※ 編輯: yangog (36.235.184.182 臺灣), 08/01/2023 22:19:02...........
TPS 2 應該不用想那麼多吧...
讀取跟寫入要分開討論,寫入有交易問題
先確認是否允許dirty read
94
[心得] 軟體考古系列:Redis我一直覺得 Redis 在資料庫世界裡獨具一格。其他多數資料庫的中心思想不是表格就 是文件,但在 Redis 裡,你直接與鏈結串列(linked list)和雜湊表(hash table) 等低階資料結構打交道。 這個設計實在太奇妙了,我很好奇背後創作的故事,就花了一些時間研究,寫下這篇 故事。85
[請益] 接手外包商的code沒交接也沒人可以問各位大神好 我是最近剛從資策會(java)畢業找到目前這間台中的類博弈公司(40k) 面試的時候沒問目前團隊的狀態 上班第一天才發現原來我是第一個RD。MIS則是大概有六位 公司目前的code都是之前中國外包廠商寫的67
Re: [請益] 接手外包商的code沒交接也沒人可以問我的第一份跟第二份工作都是這個樣子,一開始你會像麻痺的人,給你幾個建議 1. 掌握啟動前的入口 - 大部分程式語言都會有一個從作業系統下命令開始執行 的進入點,可能會載入 config、環境變數、命令參數這些東西,你要先清楚 這些東西的配置意義是什麼。 2. 掌握啟動後的入口 - 如果是 server 或常駐程式,在執行階段就會有監聽行為。31
[請益] 美光1TB SSD硬碟選擇大家好 先講一下工作上的需求 本身是在會計師事務所作電腦審計 會使用ACL這款軟體執行受查公司財務系統傳票的測試 ACL是會計界作電腦審計常用的軟體,程式語法有點類似SQL13
[請益] 前端求職作品請益各位好, 小弟是私立中部大學資工系畢業, 至今年三月結束工作,有一年半的程式經驗, 之後碰到疫情,便在家寫題目、惡補專業知識, 目前以自身興趣和求職目的,實做一個看直播的網頁app5
Re: [問卦] 哥要做農業自動灌溉系統 步驟這樣對yo哥 你這樣沒有樣場很難規劃啊 首先你要有土壤濕度監測的device 蝦皮上有一組15塊 然後規劃一下,你的場地跟作物1
Re: [請益] Offer請益 DBA VS C#程式開發其實我一直覺得 現在大部分的語言都是ORM來寫的 除非特化場景 不然不太直下SQL 多數用架構來解決效能問題1
[問卦] 連假我要研究把女朋友存進去redis的八卦yoyo 我高雄城5啦 今年30 放假第一天就好無聊哦 line也都沒人密我- 回一下 nodejs 伺服器相關 (不只維運), 個人覺得好用的有 pm2 方便的 nodejs 運行工具, 可簡單的做到開機自動啟動, cluster, 掛掉自動重啟等等 supertest / swagger-ui-express / express-oas-generator