分享大佬的回答,似乎很有道理。
不要告訴我們用不用redis,你得告訴我們你為什么想要用redis,不用redis業務會有什么問題?天下沒有免費的午餐,不動腦子直接上緩存/NOSQL可能會帶來更多更嚴重的問題。
單一數據庫最大的好處在于事務性實現簡單,由數據庫自己保證。舉個簡單的例子,下訂單需要扣除一個庫存,然后插入一條訂單條目,如果庫存和訂單都是數據庫表項的話這個事務是無懈可擊的,如果庫存在redis里,訂單條目是MySQL,通常就需要先寫redis,成功之后再寫數據庫,如果寫數據庫失敗了還需要回滾redis,如果最后這個回滾因為網絡之類的原因失敗了,就會多扣一個庫存。不要以為這些事情很好解決,事務性處理的復雜性遠遠超過你的想象,比如說還有寫MySQL在提交的一瞬間連接斷了這種情況,你都沒法判斷提交到底成功了還是失敗了,那你的redis是回滾還是不回滾?
所以引入新的層一定要說清楚,你為了什么目的一定要用緩存/NOSQL,能接受什么樣的一致性模型,否則就是在胡鬧。