美文网首页
db 和 mysql 何时数据会不一致?如何解决

db 和 mysql 何时数据会不一致?如何解决

作者: swoft_ | 来源:发表于2019-08-26 00:56 被阅读0次

起因

先删除redis 后操作数据库

先删除redis之后,还没有修改数据库。另外一个进程过来之后,查看redis中没有值,于是读取数据库中老的值,写到缓存中去。这个时候数据库就和缓存不一致了。

同样道理,先写数据库,删除缓存。写入之后,宕机了,导致删除失败。重启之后导致数据库和缓存数据不一致。

因为写和读是并发的,没法保证顺序,就会出现缓存和数据库的数据不一致的问题。

如何解决?

合理设置过期时间,保证最终一致性

根据业务,合理设置时间。业务能够承受多长时间不一致的场景。保证最终一致性即可。

采用双删策略

删除redis 写入数据库 删除redis (多进行一步操作,即可解决)

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

增量+全量
一个是全量(将全部数据一次写入到redis)
一个是增量(实时更新)

本地事务表+消息队列

相关文章

  • db 和 mysql 何时数据会不一致?如何解决

    起因 先删除redis 后操作数据库 先删除redis之后,还没有修改数据库。另外一个进程过来之后,查看redis...

  • Mac环境下,mysql的找回密码或者重置密码

    Mysql初始化密码忘记如何解决? django.db.utils.OperationalError: (1045...

  • 3. mysql 用户和用户管理

    MySQL用户和权限管理 1. 用户管理 元数据数据库:mysql系统授权表:db, host, usercol...

  • 说说缓存:数据不一致和并发竞争怎么处理?

    数据不一致的发生场景 同一份数据,可能会同时存在 DB 和缓存之中。那就有可能发生 DB 和缓存的数据不一致。如果...

  • PHP与MySQL

    mysql_connect 建立数据库连接 mysql_close 关闭数据库连接 mysql_select_db...

  • Mysql

    安装maria DB (maria DB如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(...

  • myql Exception in thread "main"

    原因:mysql-connector-java 的版本号和本地数据库版本号不一致导致的问题 解决方法:下载本地版本...

  • 主从复制

    MySQL主从复制 前提是:主DB server和从DB server的数据库版本一致,库名一致,主DB serv...

  • mysql

    mysql5.7 关系型数据库SQL mysql mariadb oracle DB2 ...

  • MySQL

    mysql 分为关系型数据库和非关系型数据库 关系型:MySQL,DB2,sqlte...等 非关系型数据库:mo...

网友评论

      本文标题:db 和 mysql 何时数据会不一致?如何解决

      本文链接:https://www.haomeiwen.com/subject/olslectx.html