Redis緩存一致性方案記錄1
方案:異步更新緩存(基於訂閱binlog的同步機制)
1、讀:熱點數據放入Redis供應用讀,讀不到再去mysql讀
2、寫:增(insert)刪(delete)改(update)都用直接操作mysql
3、緩存更新:mysql開啓log_bin,將成功的寫操作都記錄到binlog,通過模仿mysql的slave方式來訂閱binlog,有新數據就推送給mq,執行異步更新redis緩存或者直接刪除對應改變的key,讓其重新從數據庫中讀取。
示例:
組件: Mysql,阿里Canal,redis
注:阿里Canal是一款訂閱消費Mysql binlog日誌的中間件,分爲Client和Server。Server有點類似Mysql備庫,從主Mysql獲取其增量的binlog數據,Client消費Server的新數據。
…後面補充