Python对象缓存后端系统
项目描述
Python小猫缓存
==================
Python小猫缓存是一个Python对象的缓存系统。
缓存后端可以是内存中的或redis/你甚至可以使用Django缓存框架与Python-pussy-cache。
给定一个缓存后端和任何Python类,你可以定义
Python-pussy-cache将缓存你定义的方法的结果,并还将通过时间戳或
通过你定义的方法管理缓存失效。



以下是一个示例,以使事情更清晰
```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
==================
Python小猫缓存是一个Python对象的缓存系统。
缓存后端可以是内存中的或redis/你甚至可以使用Django缓存框架与Python-pussy-cache。
给定一个缓存后端和任何Python类,你可以定义
Python-pussy-cache将缓存你定义的方法的结果,并还将通过时间戳或
通过你定义的方法管理缓存失效。



以下是一个示例,以使事情更清晰
```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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 71e6774f2064b147834ee64c264dc63b4bf884b95229214a9c5ab7ccaeac6e7d |
|
MD5 | 063ce4debf702cd8adf04c7306cccc0a |
|
BLAKE2b-256 | c1f0806a7b6dc0c2953689afc124e01c5cab4331f20e19073b012d24487e4d7a |