亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

redis緩存如何做到與數據庫數據一致阿?

redis緩存如何做到與數據庫數據一致阿?

撒科打諢 2018-08-20 14:13:43
假設數據庫有一個user表,存入redis的鍵為users,值為Map<id,user>。如果不設置鍵的過期時間還可以做到。但是設置了鍵的過期時間后,當這個鍵過期了,從新把數據讀到Map<id,user>中,如果這時候只讀了一個user,比如{id=1,name=張三,mark=90},因為數據還沒讀取完,我們還沒把這個map放入redis。恰好這時有人修改了張三的數據,把mark修改成90,修改的代碼邏輯是先把數據庫的張三mark修改為90,然后去redis修改users對應的map的張三的數據,但是redis中現在還沒有users這個鍵。所以最后造成的結果是--->數據庫中:張三的mark為90 。 redis中:張三的mark為100。這種不一致的情況該怎么解決呢?
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

你往極限處想,只要是在兩個地方的數據,就沒有辦法保證時時相同,光也是有速度的。

不要想著用緩存的優點(優點是啥?)

又沒有緩存的缺點?(缺點是在系統中可以忽略或者無所謂或者可以忍受的)。

緩存是用來保存不常變動的數據,用以減輕數據庫負擔,如果你一直檢查,一直更新的話,數據庫負擔一點都沒有減輕,甚至更高了,你還要緩存作甚?


查看完整回答
反對 回復 2018-09-11
  • 1 回答
  • 0 關注
  • 688 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號