悲观锁

  • 悲观锁对数据被外界修改持保守态度(悲观),因此在整个数据处理过程中将数据处于锁定状态,往往依靠数据库提供的锁机制实现
  • 适用场景
    • 写多读少,确保数据安全
  • 样例

    • 行锁,页锁,表锁,共享锁(读锁),排它锁(写锁)

      乐观锁

  • 乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做或者程序自动去重试

  • 适用场景
    • 读多写少,提高系统吞吐量
  • 样例

    • 数据库乐观锁,缓存乐观锁

      乐观锁和悲观锁

  • 谁的吞吐量大

    • 乐观锁只是在更新数据那一刻锁表,其他情况不锁表,所以相对于悲观锁,吞吐量更高
    • image.png
  • 未完待续