redis使用乐观锁时处理竞争问题,高并发时失败率高如何解决

    xiaoxiao2021-03-25  89

    接着上一篇中《redis应该中如何解决多写的竞争问题》结尾处提到的问题,使用乐观锁机制。如何解决大并发的问题?

    如果同时进行有多个请求进行写操作,例如同一时刻有100个请求过来,那么只会有一个最终成功,其余99个全部会失败,效率不高。

    而且从业务层面,有些是不可接受的场景。例如:大家同时去抢一个红包,如果背后也是用乐观锁的机制去处理,那每个请求后都只有一个人成功打开红包,这对业务是不可忍受的。

    在这种情况下,如果想让总体效率最大化,可以采用排队的机制进行。

    将所有需要对同一个key的请求进行入队操作,然后用一个消费者线程从队头依次读出请求,并对相应的key进行操作。

    这样对于同一个key的所有请求就都是顺序访问,正常逻辑下则不会有写失败的情况下产生 。从而最大化写逻辑的总体效率。

    转载请注明原文地址: https://ju.6miu.com/read-14895.html

    最新回复(0)