高并发场景下分布式锁的优化思路

如果秒杀一件商品采用分布式锁,当每秒请求达到上千请求,传统做法是用商品id作为redis锁的key,这样会导致请求串行化,同一时刻只有一个请求在运行。

对于并发请求量大的场景,传统的redis分布式锁及其影响效率,可以采用类似ConcurrentHashMap的分段锁,把商品分成n份,每份用一个redis锁的key,例如key1,key2,key3…,当请求过来后,可以随机到n份库存中某一份进行加锁,并发量大时这样就相当于n个请求同时处理,如果某个分段库存不足应及时释放锁,立马换下一个分段库存。

你可能感兴趣的:(java基本知识,分布式,redis,缓存)