缓存实用程序的集合。
cachingutil的Python项目详细描述
提供缓存功能的类的层次结构 小题大做。
使用缓存时,只需使用fetch方法。 如果它存在并且 未过期,否则将使用“从源获取”。
缓存
抽象类。 不应使用。提供方法 由包提供的子类所需。
- 需要在具体类中实现的方法:
- 键 从源获取 隐藏物 按密钥从缓存中获取 按密钥删除 有效期
- 可选: 烹饪
基本内存类
抽象类。
- 必须在具体类中实现的方法:
- 键 从源获取 计算有效期
- 可选: 烹饪
简单内存类
抽象类。
- 必须在具体类中实现的方法:
- 键 从源获取
- 可选: 烹饪
basehttpmemorycache
抽象类。
缓存请求对象或从请求生成的对象。
TOdo:改进过期计算。目前只使用最大年龄。
- 必须在具体类中实现的方法:
- 键 从源获取 为项目获取请求(如果缓存从请求对象生成的对象)
- 可选: 烹饪
httpmemorycache
混凝土等级。
使用url字符串作为键。 使用requests.get作为从源获取。
使用: 实例化并使用instance.fetch(url)从缓存或源中获取。
二进制文件缓存
抽象类。
读取和写入二进制文件。适合缓存 图像。
- 必须在具体类中实现的方法:
- 键 从源获取
- 可选: 烹饪
文件缓存
抽象类。
使用编码读取和写入文件。
- 必须在具体类中实现的方法:
- 键 从源获取
- 可选: 厨师 编码 解码
jsonfilecache
抽象类。
这只是带有json编码和解码的文件缓存。
从源获取应返回一个json字符串。 如果设置了对象对钩子,则解码将 用这个。通常使用:collections.ordereddict 以保持元素的顺序。
- 必须在具体类中实现的方法:
- 键 从源获取
- 可选: 厨师 对象对挂钩
二级缓存
混凝土等级。
通常这意味着内存中的缓存连接到 持久缓存(如文件、数据库)。那意味着 你的缓存在许多执行过程中都会保持,但不会 需要访问比 每项提取一次。
要使用它,实现两个缓存并实例化 TwoLevelCache加入他们。传入内存缓存类 作为临时缓存和持久缓存类 作为(惊喜!)佩西斯滕特缓存。