一、延迟双删
(1)先删除缓存
(2)在写入数据库
(3)休眠1s (根据具体业务设定)
(4)在删除缓存
不过延迟双删,在修改完数据库后,有删除缓存失败的风险,所以还有别的方法。
二、使用消息中间件
当更新数据失败后,消息中间件监听消息,实现重试的方法。
三、使用Canal组件
使用Canal组件,监听binlog 日志,更新失败后,加载binlog数据,将数据在加载到redis中。
(1)先删除缓存
(2)在写入数据库
(3)休眠1s (根据具体业务设定)
(4)在删除缓存
不过延迟双删,在修改完数据库后,有删除缓存失败的风险,所以还有别的方法。
当更新数据失败后,消息中间件监听消息,实现重试的方法。
使用Canal组件,监听binlog 日志,更新失败后,加载binlog数据,将数据在加载到redis中。