代码缓存击穿保护器singleflight

Posted azach64

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码缓存击穿保护器singleflight相关的知识,希望对你有一定的参考价值。

fs = dict()
lock = Lock()
def singleflight(key, func):
    with lock:
        if key in fs:
            wait = True
            f = fs[key]
        else:
            wait = False
            f = [None, Event()]
            fs[key] = f
    if wait:
        f[1].wait()
        r = f[0]
    else:
        r = func()
        f[0] = r
        f[1].set()
    with lock:
        fs.pop(key, None)
    return r

以上是关于代码缓存击穿保护器singleflight的主要内容,如果未能解决你的问题,请参考以下文章

代码缓存击穿保护器singleflight

缓存击穿升级版

Redis缓存击穿,缓存穿透,缓存雪崩解决方案(附代码)

Redis缓存击穿,缓存穿透,缓存雪崩解决方案(附代码)

缓存击穿(内存 or Memcached or Redis.....)

Go分布式缓存 防止缓存击穿(day6)