专栏首页北京马哥教育Python缓存神奇库cacheout全解

Python缓存神奇库cacheout全解

python的缓存库(cacheout)

链接:

  • 项目: https://github.com/dgilland/cacheout
  • 文档地址: https://cacheout.readthedocs.io
  • PyPI(下载链接): https://pypi.python.org/pypi/cacheout/
  • TravisCI(下载链接): https://travis-ci.org/dgilland/cacheout

特性:

  • 后端使用字典进行缓存
  • 使用缓存管理轻松访问多个缓存对象
  • 当使用模块级缓存对象,重构运行时的缓存设置
  • 最大缓存大小限制
  • 默认的缓存时间设置以及缓存项自定义存活时间
  • 批量的设置、获取、删除操作
  • 线程安全
  • 多种缓存机制的实现:
    1. FIFO(先进先出)
    2. LIFO(后进先出)
    3. LRU (最近最少使用机制)
    4. MRU (最近最多使用机制)
    5. LFU (最小频率使用机制)
    6. RR (随机替换机制)

线路图:

  • 层级缓存(多层级缓存)
  • 支持缓存事件监听
  • 获取缓存对象时的常规表示方法
  • 获取缓存对象不存在时的回调处理支持
  • 统计缓存

要求:

  • Python >= 3.4

快速开始:

下载安装:

通过创建一个缓存对象来开始了解:

默认的缓存的大小为256,默认存活时间是关闭的,这些属性可以通过如下设置:

设置一个缓存可以通过cache.set():

获取缓存键的值通过:cache.get():

为每个键值对设置存活过期时间:

缓存函数的计算结果:

为缓存函数提供了键值对的存活时间:

函数解除缓存:

复制机制:

删除缓存中的一个键值对:

清除整个缓存:

为get、set、delete设置了批量方法:

重置已经初始化的缓存对象:

通过cache.keys(), cache.values(), and cache.items()获取所有的键、值、以及键值对:

迭代整个缓存的键:

检测键是否还存在于缓存中通过cache.has() and key in cache方法

通过使用CacheManager来管理多个缓存对象:

更多的细节请查看整篇文档https://cacheout.readthedocs.io.

英文原文:https://github.com/dgilland/cacheout?utm_source=mybridge&utm_medium=web&utm_campaign=read_more 译者:刘航

《Python人工智能和全栈开发》2018年07月23日即将在北京开课,120天冲击Python年薪30万,改变速约~~~~

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

- END -


本文分享自微信公众号 - 马哥Linux运维(magedu-Linux)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Web Cache原理,你真的造吗?

    一、Web Cache 在介绍Web cache时,我们需要简单介绍缓存的理解 1.1 缓存解释 缓存通常是基于键值对来缓存的,键通过hash计算后,存放于内存...

    小小科
  • varnish缓存实现动静分离

    一、简介 Web缓存是指一个Web资源(html,js,css,images...)存在与Web服务器和客户端(浏览器),缓存会根据进来的请求报文做出响应,后...

    小小科
  • 大型网站的灵魂——性能

    Via: http://blog.jobbole.com/84433/ 前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一...

    小小科
  • 缓存穿透、缓存击穿和缓存雪崩实践

    我们使用缓存的主要目是提升查询速度和保护数据库等稀缺资源不被占满。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量请求落到数据库,导致数...

    java思维导图
  • 分布式系统关注点(18)——「缓存穿透」和「缓存雪崩」到底啥区别?

    有句话说得好,欲要使其毁灭,先要使其疯狂。当你沉浸在缓存所带来的系统tps飙升的喜悦中时,使你系统毁灭的种子也已经埋在其中。

    Zachary_ZF
  • Redis缓存穿透、缓存雪崩和缓存击穿理解

    缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询...

    爱撸猫的杰
  • Cache缓存机制

    论,如何定义一个前端工程师。前天看了篇文章,作者把前端攻城狮称作是所有攻城狮角色中最具有也最需要‘工匠精神’的攻城狮。从最直观的角度来讲就是视觉方面,不仅要百分...

    前端博客 : alili.tech
  • 一篇文章理解Web缓存

    前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端js上进...

    前端博客 : alili.tech
  • 分布式缓存考点梳理 + 高频面试题

    对缓存和数据库的考察,一直都是业务开发同学在面试中的核心问题,特别是缓存部分,随着大部分公司业务规模的增加,缓存的应用越来越重要。我偶尔会和身边的同事调侃:如何...

    MickyInvQ
  • 缓存 | 从本地缓存到分布式缓存, Guava, Caffeine, Memcached, Redis

    在程序设计中,经常能听到的就是以时间换空间和以空间换时间。缓存作为一种能加快程序性能的银弹,它是典型的后者(以空间换时间).

    双鬼带单

扫码关注云+社区

领取腾讯云代金券