基于python字典的mock memcached客户端库。
mockcache的Python项目详细描述
基于python字典的mock memcached客户端库。它没有 连接到任何memcached服务器,但保留字典并存储每个缓存 在里面。它是memcached客户端的一个模拟api,仅用于 测验。它还实现了过期。不是线程安全的。
try: import memcache except ImportError: import warnings import mockcache as memcache warnings.warn("imported mockcache instead of memcache; cannot find " "memcache module") mc = memcache.Client(["127.0.0.1:11211"])
此模块和其他memcached客户端库具有相同的行为。
>>> from mockcache import Client >>> mc = Client() >>> mc <mockcache.Client {}> >>> mc.get("a") >>> mc.get("a") is None True >>> mc.set("a", "1234") 1 >>> mc.get("a") '1234' >>> mc <mockcache.Client {'a': ('1234', None)}> >>> mc.add("a", "1111") 0 >>> mc.get("a") '1234' >>> mc <mockcache.Client {'a': ('1234', None)}> >>> mc.replace("a", "2222") 1 >>> mc.get("a") '2222' >>> mc <mockcache.Client {'a': ('2222', None)}> >>> mc.append("a", "3") 1 >>> mc.get("a") '22223' >>> mc <mockcache.Client {'a': ('22223', None)}> >>> mc.prepend("a", "1") 1 >>> mc.get("a") '122223' >>> mc <mockcache.Client {'a': ('122223', None)}> >>> mc.incr("a") 122224 >>> mc.get("a") 122224 >>> mc <mockcache.Client {'a': (122224, None)}> >>> mc.incr("a", 10) 122234 >>> mc.get("a") 122234 >>> mc <mockcache.Client {'a': (122234, None)}> >>> mc.decr("a") 122233 >>> mc.get("a") 122233 >>> mc <mockcache.Client {'a': (122233, None)}> >>> mc.decr("a", 5) 122228 >>> mc.get("a") 122228 >>> mc <mockcache.Client {'a': (122228, None)}> >>> mc.replace("b", "value") 0 >>> mc.get("b") >>> mc.get("b") is None True >>> mc <mockcache.Client {'a': (122228, None)}> >>> mc.add("b", "value", 5) 1 >>> mc.get("b") 'value' >>> mc # doctest: +ELLIPSIS <mockcache.Client {'a': (122228, None), 'b': ('value', ...)}> >>> import time >>> time.sleep(6) >>> mc.get("b") >>> mc.get("b") is None True >>> mc <mockcache.Client {'a': (122228, None)}> >>> mc.set("c", "value") 1 >>> mc.get_multi(["a", "b", "c"]) {'a': 122228, 'c': 'value'} >>> mc.set_multi({"a": 999, "b": 998, "c": 997}, key_prefix="pf_") [] >>> mc.get("pf_a") 999 >>> multi_result = mc.get_multi(["b", "c"], key_prefix="pf_") >>> multi_result["b"] 998 >>> multi_result["c"] 997 >>> mc.delete("a") 1 >>> mc.get("a") is None True >>> mc.set("a b c", 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyCharacterError: Control characters not allowed >>> mc.set(None, 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyNoneError: Key is None >>> mc.set(123, 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyTypeError: Key must be str()'s >>> mc.set(u"a", 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedStringEncodingError: Key must be str()'s, not unicode. >>> mc.set("a" * 251, 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyLengthError: Key length is > ...