MST

星途 面试题库

面试题:Redis分布式锁细粒度化设计中如何考虑锁粒度对并发性能的影响

在Redis分布式锁细粒度化设计场景下,假设存在一个电商库存扣减系统,当高并发请求来临时,锁粒度分别设置为商品级别、店铺级别和全局级别,阐述每种锁粒度设置对系统并发性能的具体影响,并说明原因。
48.1万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

商品级别锁粒度

  • 对并发性能的影响:能提供较高的并发性能。
  • 原因:不同商品的库存扣减操作可以同时进行,互不干扰。每个商品有独立的锁,当高并发请求来临时,针对不同商品的请求可以并行处理,只要不同时操作同一商品的库存,就不会因为锁竞争而等待,极大地提高了系统处理并发请求的能力。

店铺级别锁粒度

  • 对并发性能的影响:并发性能相对商品级别锁粒度有所降低。
  • 原因:同一店铺内不同商品的库存扣减操作会竞争同一把锁。例如一个店铺有多种商品,当一个请求在扣减该店铺某一商品库存时,其他针对该店铺内其他商品库存扣减的请求就需要等待锁的释放,这就限制了同一店铺内商品库存扣减操作的并发度,从而使整体并发性能下降。

全局级别锁粒度

  • 对并发性能的影响:并发性能最低。
  • 原因:所有商品的库存扣减操作都竞争同一把全局锁。无论哪个商品的库存扣减请求,都需要先获取全局锁,这就导致高并发情况下大量请求会因为等待锁而阻塞,只有获得锁的请求才能执行库存扣减操作,严重限制了系统的并发处理能力,并发性能最差。