孝感网站制作,柳州企业网站制作,建设一个购物网站需要多少钱,vps怎么添加网站普通情况和高并发时#xff0c;Redis缓存和数据库怎么保持一致#xff1f; 普通情况思路 高并发时思路 Q#xff1a;缓存和数据库怎么保持一致#xff1f; A#xff1a;绝对不可能保持一致的#xff0c;在实际业务开发中#xff0c;有一些方案可以做取舍。 实际业务中Redis缓存和数据库怎么保持一致 普通情况思路 高并发时思路 Q缓存和数据库怎么保持一致 A绝对不可能保持一致的在实际业务开发中有一些方案可以做取舍。 实际业务中疑问点主要有
是先更新Redis还是先更新Mysql是Redis和Mysql都更新还是只更新MysqlMysql或Redis其中一个更新失败该业务要算作失败吗需要回滚吗
这是我根据实际业务开发经验总结的操作方案图
普通情况
思路
仅保证数据库是完整有效的数据有变动后就删除Redis不一致的结果都属于延迟的情况。但是当数据变动后都需要访问数据库至少一次来更新到缓存。
新增
Mysql新增数据失败即失败Redis无操作
编辑
Mysql修改数据失败即失败Redis删除数据失败即失败
删除
Mysql删除数据失败即失败Redis删除数据失败即失败
获取
从Redis获取就有返回从Mysql获取有就更新到Redis返回
高并发时
思路
需要保证数据库和Mysql是完整有效的数据有变动时需要同步修改Redis不一致的结果都属于延迟的情况。当数据变动后无需访问数据库。
新增
Mysql新增数据失败即失败Redis新增数据失败即失败
编辑
Mysql修改数据失败即失败Redis修改数据失败即失败
删除
Mysql删除数据失败即失败Redis删除数据失败即失败
获取
从Redis获取有就返回无就返回无