采用延时双删策略

    1. public void write( String key, Object data )
    2. {
    3. redis.delKey( key );
    4. db.updateData( data );
    5. Thread.sleep( 500 );
    6. redis.delKey( key );
    7. }
    • 先删除缓存
    • 再写数据库
    • 休眠500毫秒(根据读数据逻辑耗时来定)
    • 再次删

    异步更新缓存(基于订阅binlog的同步机制)

    • MySQL binlog增量订阅消费+消息队列+增量数据更新到redis
    • Canal