Dogpile由两个子系统组成,一个子系统位于另一个子系统之上。

dogpile提供“狗锁”的概念,这种控制结构允许选择一个执行线程作为某些资源的“创建者”,同时允许其他执行线程将该资源的先前版本称为创建收益 如果没有以前的版本,则这些线程将阻塞,直到对象可用为止。

dogpile.cache是一个缓存API,该API提供了用于缓存各种后端的通用接口,并另外提供了API挂钩,这些挂钩将这些缓存后端与的锁定机制集成在一起dogpile。

新的后端非常易于创建和使用。鼓励用户根据自己的需求调整提供的后端,因为高容量缓存需要针对应用程序及其环境进行大量调整和调整。

安装

使用pip或类似工具从Python软件包索引中安装dogpile.cache的发行版本pip install dogpile.cache,或者您也可以通过网盘下载dogpile.cache的源代码文件包。

在撰写本文时,流行的键/值服务器包括Memcached, Redis和许多其他缓存服务器 。虽然这些工具都有不同的使用重点,但它们的共同点在于存储模型基于基于键的值的检索;因此,它们都潜在地适用于缓存,尤其是首先设计用于缓存的Memcached。

考虑到缓存系统,dogpile.cache提供了针对特定于该系统的特定Python API的接口。

基本用法

基本用法

dogpile.cache包含一个Pylibmc后端。基本配置如下:

from dogpile.cache import make_regionregion = make_region().configure('dogpile.cache.pylibmc',expiration_time = 3600,arguments = {'url': ["127.0.0.1"],}
)@region.cache_on_arguments()
def load_user_info(user_id):return some_database.lookup_user_by_id(user_id)

上面,我们使用make_region()函数创建一个CacheRegion,然后通过CacheRegion.configure()方法应用后端配置,该方法返回区域。CacheRegion.configure() 在这种情况下,后端的名称是其自身唯一需要的参数:dogpile.cache.pylibmc。但是,在这种特定情况下,pylibmc 后端还要求将Memcached服务器的URL传递到arguments字典中。

配置分为两部分。在通过构建时make_region(),CacheRegion对象通常在模块导入时可用,以用于装饰功能。传递给它的其他配置详细信息 CacheRegion.configure()通常是从配置文件中加载的,因此在运行时之前不一定可用,因此分为两步。

传递给key参数CacheRegion.configure()包括expiration_time(这是传递到Dogpile锁的到期时间),以及arguments,它们是后端直接使用的参数-在这种情况下,我们使用的是直接传递给pylibmc模块的参数。

dogpile.cache-用于会话和缓存的WSGI中间件(beaker的下一代从产品)相关推荐

  1. 使用烧杯进行缓存? 为什么要切换到dogpile.cache

    Continuing on where I left off regarding Beaker in October (see Thoughts on Beaker), my new replacem ...

  2. SqlAlchemy做数据库缓存 -- dogpile.cache

    dogpile是一种控制结构,它允许选择单个执行线程作为某些资源的"创建者",同时允许其他执行线程在创建过程中引用此资源的先前版本. dogpile.cache是​​一个缓存API ...

  3. dogpile.cache

    dogpile是一种控制结构,它允许选择单个执行线程作为某些资源的"创建者",同时允许其他执行线程在创建过程中引用此资源的先前版本. dogpile.cache是​​一个缓存API ...

  4. Shiro 会话管理 缓存管理

    目录 一.会话管理 1.基础组件 1.1 SessionManager 1.2 SessionListener 1.3 SessionDao 1.4 会话验证 2.使用步骤: 实现SessionLis ...

  5. Caffeine Cache~高性能 Java 本地缓存之王

    前面刚说到Guava Cache,他的优点是封装了get,put操作:提供线程安全的缓存操作:提供过期策略:提供回收策略:缓存监控.当缓存的数据超过最大值时,使用LRU算法替换.这一篇我们将要谈到一个 ...

  6. Spring Cache使用Redis自定义缓存key

    一.什么是Spring Cache 从spring 3.1版本开始,提供了一种透明的方式来为现有的spring 应用添加cache.在应用层面与后端存储之间,提供了一层抽象,这层抽象目的在于封装各种可 ...

  7. 22-08-06 西安 尚医通(03)EasyExcel; Spring Cache 、Redis做缓存

    EasyExcel EasyExcel:一行一行读取到内存 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单.节省内存著称 POI:java里操作excel,读取.创建excel ...

  8. spring boot集成ehcache 2.x 用于hibernate二级缓存

    spring boot集成ehcache 2x 用于hibernate二级缓存 项目依赖 Ehcache简介 hibernate二级缓存配置 ehcache配置文件 ehcache事件监听 注解方式使 ...

  9. java清空redis缓存数据库_java相关:Spring Cache手动清理Redis缓存

    java相关:Spring Cache手动清理Redis缓存 发布于 2020-4-24| 复制链接 摘记: 这篇文章主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非 ...

最新文章

  1. httpclient妙用一 httpclient作为客户端调用soap webservice(转)
  2. Python大数据系列-01-关系数据库基本运算
  3. Android Material Design按钮样式设计
  4. 问题三十四:怎么用ray tracing画任意长方体(generalized box)
  5. Spring 中的重试机制,简单、实用!
  6. 手机app登录显示服务器异常,手机app 连接云服务器异常
  7. MATLAB聚类分析源代码
  8. tcpdf开发文档(中文翻译版)
  9. 怎样使用Fiddler工具进行APP抓包
  10. PNG图片压缩对比分析
  11. sqlserver2000局域网无法远程访问
  12. 强化学习——策略学习
  13. 谈谈对java的理解
  14. python绘制三维地形shade()参数_python中的Matplot库和Gdal库绘制富士山三维地形图-参考了虾神的喜马拉雅山...
  15. 测测你的IQ加分析能力
  16. html 文档在线查看,在网页中在线查看文档(doc、docx 、xls 、xlsx、 pdf 、swf )
  17. python-英文字母的大小写转换
  18. 我在日本小帅哥那学习了GCN
  19. 关于人性的20句箴言
  20. 将B站缓存M4S文件转存为MP4

热门文章

  1. php qstr,PHP实现多服务器共享SESSION 数据(2)
  2. 技术动态 | 知识图谱赋能的知识工程:理论、技术与系统
  3. JS 中实现鼠标长按连续触发
  4. python-ldap模块
  5. 焦脱镁叶绿酸-a修饰量子点/荧光/药物/小分子抑制剂/上转换纳米颗粒/树枝状聚合物
  6. android%3cspan,新时代赌城全部网址
  7. 塞恩万博考试报名信息系统
  8. 机器学习基础--碎片知识点(1)
  9. 【mysql】sql语句的四舍五入
  10. 使用迅雷下载一些官网上下载不下来的软件