如何设计一个分布式锁?如何对锁的性能进行优化?

分布式锁的本质就是在所有进程都能访问到的一个地方,设置一一个锁资源, 让这些进程都来竞争锁资源。数据库、zookeeper, Redis。 通常对于分布式锁,会要求响应快、性能高、与业务无关。 Redis实现分布式锁 SETNX key value: 当key不存在时,就将key设置为value,并返回1。如果key存在,就返回0。 EXPIRE key locktime: 设置key的...
并发

锁机制与 InnoDB 锁算法

Next-Key Locks 是 MySQL 的 InnoDB 存储引擎的一种锁实现。

MVCC 不能解决幻影读问题,Next-Key Locks 就是为了解决这个问题而存在的。在可重复读(REPEATABLE READ)隔离级别下,使用 MVCC + Next-Key Locks 可以解决幻读问题。而Next-Key就是行锁+Gap锁的组合。

8锁问题

待完善…

并发

synchronized和Lock区别

简述 synchronized 和 Lock 区别…

并发

Java高并发之锁总结

Java线程锁机制是怎样的? JAVA的锁就是在对象的Markword中记录一个锁状态。无锁,偏向锁,轻量级锁,重量级锁对应不同的锁状态。 JAVA的锁机制就是根据资源竞争的激烈程度不断进行锁升级的过程。 锁的分类1. 乐观锁与悲观锁 乐观锁 对共享数据进行访问时,乐观锁总是认为不会有其他线程修改数据修改数据。 于是直接执行操作,只是在更新时检查数据是否已经被其他线程修改。 如果没...
并发