跳转到主要内容

Python对象缓存后端系统

项目描述

Python小猫缓存
==================

Python小猫缓存是一个Python对象的缓存系统。

缓存后端可以是内存中的或redis/你甚至可以使用Django缓存框架与Python-pussy-cache。
给定一个缓存后端和任何Python类,你可以定义

Python-pussy-cache将缓存你定义的方法的结果,并还将通过时间戳或
通过你定义的方法管理缓存失效。



构建状态
python-pussycache
python-pussycache


以下是一个示例,以使事情更清晰

```python
import time
from pussycache.proxy import BaseProxy
from pussycache.cache import BaseCacheBackend
## 这里是一个简单的类,其中一些方法需要被缓存

class MyClass(object)

def a_long_task(self, delta)
time.sleep(delta)
return delta

def forget_about_time(self)
返回 None

我们设置了一个内存缓存后端,有效期为30秒。

cache = BaseCacheBackend(30)

cache_proxy = BaseProxy(MyClass(), cache=cache,
cached_methods=["a_long_task"],
invalidate_methods={"forget_about_time": ["a_long_task"]})

cachedinstance = cache_proxy
你的 cachedinstance 现在已经
准备好使用。它将像普通的 MyClass 对象一样工作

print cachedinstance.a_long_task(10)
10秒后
10
如果第二次调用相同的方法
print cachedinstance.a_long_task(10)
10
结果立即返回,因为它在缓存中
但是
print cachedinstance.a_long_task(3)
3
使用不同的参数,结果尚未缓存。
如果你想使此方法的缓存失效
print cachedinstance.forget_about_time()
print cachedinstance.a_long_task(10)
10秒后
10
```

当然,如果你需要直接访问缓存后端,你可以
直接调用它。假设你需要使所有缓存失效

```python

cachedinstance._cache.clear()
```

如果需要直接调用缓存,也是如此

```python
cachedinstance.\_cache.set("mykey", "my value", 10)
cachedinstance.\_cache.get("mykey")
"my value"
并且在10秒后
cachedinstance.\_cache.get("mykey")
值已从缓存中消失
```


测试
-----

要运行测试,只需使用 pip 安装 tox ``pip install tox`` 并运行

tox

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

pussycache-1.4.zip (12.4 kB 查看哈希值)

上传时间