使用redis作为mysql的缓存时,确实会出现数据同步的问题。当前还没有完全绝对的性价比高的解决方案,不同的情况得根据读写的性能要求具体的分析。几种常见的解决方案如下所示:
方案一
redis只做失效,不做更新
这是比较目前比较流行的方法,当有写请求时,先让缓存失效,再更新数据库。
此方案下的更新操作情况:
- 删除缓存失败,那么不会去执行update操作。
- 删除缓存成功,update失败,读请求还是会将旧值写回到redis中。
- 删除缓存成功,update成功,读请求会将新值写回到redis中