2026.4.1
怎么保证Mysql的主从一致性
根据一致性有低到高,Mysql分为异步复制、半同步复制、组复制。异步复制是将binlog文件发送给从节点就不管了,半同步复制是只要有一个从节点告知主节点已经将binlog复制完毕,主节点就返回插入完成的消息,组复制就需要大多数节点都告知主节点复制完毕,主节点才会返回。
如何使用redis实现分布式锁
1 | SET lock_key unique_value NX PX 30000 |
lock_key:锁的名字。unique_value:关键点! 每个客户端生成的随机唯一 ID(如 UUID)。用于释放锁时校验“这把锁是不是我加的”。NX:只有 key 不存在时才设置成功(保证互斥)。PX 30000:设置 30 秒自动过期(防止客户端崩溃后锁永不释放)。
可能涉及的一些问题:
- 业务流程比较久,锁超时误删。解决:删之间看一下是不是本地线程持有锁
- 解锁的原子性需要保证
spring事务的原理
spring事务是基于事务管理器与aop实现的。
具体来说,项目启动时,如果该方法有@transctional注解,spring在创建该类的bean时会创建一个代理对象存入ioc容器中,当方法被调用时,从事务管理器拿到一个连接,将连接改为手动提交,如果业务抛出异常,则回滚。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 m1kasaz!
评论





