# python装饰器自动缓存系统(autocache.py)
### 说明
- 这是一个函数装饰器,用来给函数增加缓存。
- 程序根据函数名和参数自动缓存,可以设置缓存时间(秒)。
- 只要函数名和参数完全相同并且缓存时间没到,则直接返回缓存里面的值。否则执行函数,再将结果缓存。
### 使用方法
参考 [test_autocache.py](test_autocache.py)
### 优点
- 使用简单方便,直接在要缓存的函数前加装饰器即可
- 根据函数名和参数进行缓存,更加智能
### 存在问题
- 函数的缓存时间只能在函数定义的时候设置一次
- 缓存存在内存里,只能在程序结束时释放
# python装饰器自动缓存系统(redis持久化)(autocache_redis.py)
和上面的装饰器自动缓存功能相同,增加redis,可以将数据持久化。
# python键值缓存系统(cache.py)
### 说明
- 经典的键值缓存系统,类似于memcached,
- 通过set方法来将内容缓存起来, 可以设置生存时间。
- 通过get方法从缓存中获取数据,当然只有在生存时间内的内容才能被返回,超过了生存时间,直接返回None。
- 通过delete方法删除缓存,
- 通过clear方法清空缓存。
### 经典用法:
假设有一条`python`语句的执行时间很长,结果在一段时间内不会变化,我们可以对这条语句进行缓存。
例如:有一个sql查询要花费较长时间
`result = sql()`
然后我们可以用我的小缓存系统进行缓存处理,可以用下面的语句来替代
```python
cache = Cache()
result = cache.get("sql_result")
if result is None:
result = sql()
cache.set(key='sql_result', data=result, age=10)
```
解释一下:首先从缓存中读取元素,如果在缓存中,直接从缓存中获得,如果缓存中没有,则执行sql查询并将结果存入缓存,并设置生存时间为10秒
### 其他用法
参考 [test_cache.py](test_cache.py)
### 优点
- 直接对函数的返回值进行缓存,不依赖于具体函数
- 方法操作比较全面,能对具体的键值对进行操作
### 存在问题
- 用户自定义`key`,如果key相同则会覆盖原来的值
- 没有持久化,程序结束缓存删除
没有合适的资源?快使用搜索试试~ 我知道了~
python简单缓存系统 && python装饰器自动缓存.zip
共8个文件
py:6个
md:1个
gitignore:1个
需积分: 0 0 下载量 26 浏览量
2024-01-09
18:12:02
上传
评论
收藏 5KB ZIP 举报
温馨提示
Python使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手JPython并掌握其高级特性。
资源推荐
资源详情
资源评论
收起资源包目录
python简单缓存系统 && python装饰器自动缓存.zip (8个子文件)
Python_New
cache.py 1006B
test_autocache.py 435B
test_cache.py 689B
autocache.py 1KB
autocache_redis.py 1KB
test_autocache_redis.py 441B
.gitignore 6B
README.md 2KB
共 8 条
- 1
资源评论
白话Learning
- 粉丝: 3269
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功