分布式锁
分布式锁 基于数据库 乐观锁(数据更新之前先查状态,起冲突就更新失败) 悲观锁(for update,会占有,不利于并发) 获取锁的前提:结果集中的数据没有使用排他锁或共享锁时,才能获取锁,否则将会阻塞。 需要注意的是, FOR UPDATE 生效需要同时满足两个条件时才生效: 数据库的引擎为 innoDB 操作位于事务块中(BEGIN/COMMIT) 实现: ...
分布式锁 基于数据库 乐观锁(数据更新之前先查状态,起冲突就更新失败) 悲观锁(for update,会占有,不利于并发) 获取锁的前提:结果集中的数据没有使用排他锁或共享锁时,才能获取锁,否则将会阻塞。 需要注意的是, FOR UPDATE 生效需要同时满足两个条件时才生效: 数据库的引擎为 innoDB 操作位于事务块中(BEGIN/COMMIT) 实现: ...
缓存机制 受制于数据库操作速度(磁盘操作)和连接池数量限制,在一些高并发场景,通常会设计缓存(内存操作)来减轻DB压力,进行流量削峰。 本质上来说就是更多地延缓用户请求,将请求拦截在上游,以及层层过滤用户的访问需求,遵从“最后落地到数据库的请求数要尽量少”的原则。 ...