Memcache可安全地为多个客户端访问

时间:2015-10-12 16:29:57

标签: python memcached multiprocessing

假设多个python进程/客户端在无法控制的时间尝试执行此类操作。

cache.set("GLOBAL_KEY", Value)

这样安全还是有机会获得损坏的价值?

如果这不安全,有哪些技术可以保护值不受客户端并发访问的影响?

1 个答案:

答案 0 :(得分:0)

由于此问题被标记为multiprocessing,我只是指这些类型的并行流程。

也就是说,有a couple of ways分享价值或

from multiprocessing import Process, Value, Array, Lock

def f(n, a, l):
    n.value = 3.1415927
    for i in range(len(a)):
        l.acquire(()
        try:
          a[i] = -a[i]
        finally:
            l.release()

if __name__ == '__main__':
    num = Value('d', 0.0)
    arr = Array('i', range(10))
    lock = Lock()

    p = Process(target=f, args=(num, arr, lock))
    p.start()
    p.join()

    print(num.value)
    print(arr[:])

请注意,您需要与control concurrent access分享价值。