1. 程式人生 > >redis中快取的資料與資料庫資料一致性的方案

redis中快取的資料與資料庫資料一致性的方案

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

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

redis處理不要求強一致實時性的資料,例如網站最熱貼排行榜

redis和mysql資料的同步,程式碼級別大致可以這樣做:
讀: 讀redis->沒有,讀mysql->把mysql資料寫回redis
寫: 寫mysql->成功,寫redis

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

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