redis中緩存的數據與數據庫數據一致性的方案

方式1:數據庫保存數據,redis不persist
redis啓動後,從數據庫加載數據
不要求強一致實時性的讀請求,都由redis處理
要求強一致實時性的讀請求,由數據庫處理
寫請求有2種處理方式,由數據庫處理
- 應用先寫道數據庫,然後更新redis
- 應用先寫道數據庫,然後其它daemon同步到redis
優點:redis啓動不用處理redis數據和數據庫不一致
缺點:redis啓動給數據庫很大的讀壓力

方式2:數據庫和redis分別處理不同的數據類型
數據庫處理要求強一致實時性的數據,例如金融數據、交易數據

Redis處理不要求強一致實時性的數據,例如網站最熱貼排行榜

 

 

 

RedisMySQL數據的同步,代碼級別大致可以這樣做:
讀: 讀redis->沒有,讀MySQL->把mysql數據寫回redis
寫: 寫mysql->成功,寫redis

 

 

併發不高的情況:
讀: 讀redis->沒有,讀mysql->把mysql數據寫回redis,有的話直接從redis中取;
寫: 寫mysql->成功,再寫redis;

併發高的情況:
讀: 讀redis->沒有,讀mysql->把mysql數據寫回redis,有的話直接從redis中取;
寫:異步話,先寫入redis的緩存,就直接返回;定期或特定動作將數據保存到mysql,可以做到多次更新,一次保存;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章