diskcache

DiskCache: Disk Backed Cache

DiskCache is an Apache2 licensed disk and file backed cache library, written in pure-Python, and compatible with Django.

The cloud-based computing of 2018 puts a premium on memory. Gigabytes of empty space is left on disks as processes vie for memory. Among these processes is Memcached (and sometimes Redis) which is used as a cache. Wouldn’t it be nice to leverage empty disk space for caching?

Django is Python’s most popular web framework and ships with several caching backends. Unfortunately the file-based cache in Django is essentially broken. The culling method is random and large caches repeatedly scan a cache directory which slows linearly with growth. Can you really allow it to take sixty milliseconds to store a key in a cache with a thousand items?

In Python, we can do better. And we can do it in pure-Python!

In [1]: import pylibmc In [2]: client = pylibmc.Client(['127.0.0.1'], binary=True) In [3]: client[b'key'] = b'value' In [4]: %timeit client[b'key'] 10000 loops, best of 3: 25.4 µs per loop In [5]: import diskcache as dc In [6]: cache = dc.Cache('tmp') In [7]: cache[b'key'] = b'value' In [8]: %timeit cache[b'key'] 100000 loops, best of 3: 11.8 µs per loop 

Note: Micro-benchmarks have their place but are not a substitute for real measurements. DiskCache offers cache benchmarks to defend its performance claims. Micro-optimizations are avoided but your mileage may vary.

DiskCache efficiently makes gigabytes of storage space available for caching. By leveraging rock-solid database libraries and memory-mapped files, cache performance can match and exceed industry-standard solutions. There’s no need for a C compiler or running another process. Performance is a feature and testing has 100% coverage with unit tests and hours of stress.

Testimonials

Does your company or website use DiskCache? Send us a message and let us know.

Features

  • Pure-Python
  • Fully Documented
  • Benchmark comparisons (alternatives, Django cache backends)
  • 100% test coverage
  • Hours of stress testing
  • Performance matters
  • Django compatible API
  • Thread-safe and process-safe
  • Supports multiple eviction policies (LRU and LFU included)
  • Keys support “tag” metadata and eviction
  • Developed on Python 2.7
  • Tested on CPython 2.7, 3.4, 3.5, 3.6 and PyPy
  • Tested on Linux, Mac OS X, and Windows
  • Tested using Travis CI and AppVeyor CI
https://api.travis-ci.org/grantjenks/python-diskcache.svg?branch=master  https://i-blog.csdnimg.cn/blog_migrate/406011cb780d7873b0d1f486b4f07e99.png

Quickstart

Installing DiskCache is simple with pip:

$ pip install diskcache

You can access documentation in the interpreter with Python’s built-in help function:

>>> from diskcache import Cache, FanoutCache, DjangoCache >>> help(Cache) >>> help(FanoutCache) >>> help(DjangoCache) 

User Guide

For those wanting more details, this part of the documentation describes introduction, benchmarks, development, and API.

Apache2 License

A large number of open source projects you find today are GPL Licensed. A project that is released as GPL cannot be used in any commercial product without the product itself also being offered as open source.

The MIT, BSD, ISC, and Apache2 licenses are great alternatives to the GPL that allow your open-source software to be used freely in proprietary, closed-source software.

DiskCache is released under terms of the Apache2 License.

DiskCache License

Copyright 2016-2018 Grant Jenks

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

转载于:https://www.cnblogs.com/ExMan/p/10683864.html

python-11-高效的python缓存库DiskCache python-diskcache是一个高效的Python缓存库,它提供了一种简单而强大的方式来缓存Python对象并将其存储在磁盘上。 阅读详情

相关推荐

python-diskcache:Python磁盘支持的缓存(与Django兼容)。 比Redis和Memcached更快。 纯Python

DiskCache:磁盘支持的缓存 是Apache2许可的磁盘和文件支持的缓存库,用纯Python编写,并且与Django兼容。 2021年基于云的计算将显着提高内存。 当进程争用内存时,磁盘上会留下千兆字节的空余空间。 这些进程中有Memcached(有时是Redis)用作缓存。 利用空磁盘空间进行缓存不是很好吗? Django是Python最受欢迎的Web框架,并带有多个缓存后端。 不幸的是,Django中基于文件的缓存已被破坏。 剔除方法是随机的,大型缓存会重复扫描缓存目录,该目录随着增长而线性降低。 您是否真的可以允许它花60毫秒的时间将密钥存储在包含一千个项目的缓存中? 在Python中,我们可以做得更好。 我们可以用纯Python做到这一点! In [1]: import pylibmc In [2]: client = pylibmc.Client(['127.0.0

论提升人机交互设计体验之-浏览器Disk Cache磁盘缓存及其协商缓存、及原生App和浏览器实现缓存的差异

为了共同的“性能”的目标,浏览器和后端服务,需要明确几点“”共识的标准:3.2.1、当被浏览器“强制缓存”的资源,在服务端发生“Modified”改变时,浏览器这一侧,缓存将如何“更新”; 3.2.2、当被浏览器“强制缓存”的资源,在服务端是否可以给定一个“过期”的机制,过期后,浏览器这一侧,该如何处理,且如何如何“更新”缓存; 3.2.3、浏览器的“导航器”或“浏览器的内置js解释器引擎”,首次处理H5或Http请求的资源时,应当采用什么样的机制。

pulledup的博客 5573

PyPI 官网下载 | diskcache-1.3.5.tar.gz

资源来自pypi官网。 资源全名:diskcache-1.3.5.tar.gz

浏览器缓存:memory cache、disk cache、强缓存协商缓存等概念

文章目录分类memory cachedisk cacheService WorkerPush Cache缓存过程强缓存1、Expires2、Cache-ControlExpires 和 Cache-Control 的差别协商缓存Last-Modified和If-Modified-SinceETag和If-None-Match协商缓存的两者对比实际使用策略用户行为如何触发缓存 分类 从缓存位置上来说...

分享前端开发工程师的一些日常生活、前端知识点、职业发展、对一些问题的看法、感悟等等 3万+

MOOS-ivp 实验三 MOOS简介(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

weixin_44151170的博客 7434

翁恺-C语言程序设计 PTA习题集

代码练习题

qq_46085472的博客 7643

Python使用本地缓存库diskcache

Python使用本地缓存库diskcache

iounce 2788

在MDK5.37版本中添加Complier Version 5( 解决Missing Compiler Version 5 )

本文章仅作为个人学习记录,方法也是从其他博主的博客中得到的,链接如下:二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决 - YI颗白菜 - 博客园 (cnblogs.com) 问题描述 更新最新的keil版本(MDK5.37)后,在编译以前版本的工程文件时,发现出现了非常多的报错,在网上搜索之后发现原来时编译器版本不匹配的问题,即MDK5.37中使用的是Version 6版本的编译器,而缺少Version 5,对于以前编写的工

leveling99的博客 1万+

Python:diskcache实现基于文件的数据缓存

diskcache是一个基于Sqlite文件的数据缓存文档。

彭世瑜的博客 1957

RAD Studio 10.4.2 安装避坑指南:从镜像加载到首次运行的全流程解析

本文提供了一份详尽的RAD Studio 10.4.2安装避坑指南,涵盖从镜像验证、文件提取到安装激活的全流程。重点解析了安装教程中常见的权限、路径及激活顺序等关键“坑点”,旨在帮助开发者,尤其是Delphi和C++Builder新手,一次性顺利完成安装与配置,确保开发环境稳定运行。

weixin_29224309的博客 328

QGIS插件实战:用百度地图AOI数据做个城市公园分析,从下载到出图全记录

本文详细介绍了如何利用QGIS的百度地图AOI插件进行城市公园分析,从插件安装、数据获取到空间分析与可视化全流程。通过实战案例演示了公园面积统计、服务范围缓冲区分析及专题地图制作,帮助用户高效完成城市绿地评估工作。

weixin_30790841的博客 556

Python 爬虫进阶篇——diskcache缓存

在之前的python爬虫系列中介绍了几种爬取网页内容的方法以及request模块的相关内容,本次推文给大家介绍缓存相关的内容,选择的是diskcache即基于磁盘的缓存。 一、简介 DiskCache是Apache2许可的磁盘和文件支持的缓存库,用纯Python编写。 当进程使用内存时,磁盘上会留下千兆字节的空余空间。这些进程中有用Memcached(有时是Redis)作缓存。DiskCache有效地将空余的磁盘空间用于缓存。 二、安装 安装很简单 pip install disk...

th1522856954的博客 3069

Pyhon在振动信号处理中的高级应用(一):振动信号特征(时域、频域)提取

文章目录一、概述二、算法原理2.1 时域统计特征三、python代码实现 一、概述 二、算法原理   这里我们借鉴西安交通大学机械学院雷教授的论文《Fault diagnosis of rotating machinery based on multiple ANFIS combination with GAs》相关研究成果。雷教授在论文中共列举了4类共24种振动信号的时域和频域特征。 2.1 时域统计特征 p1=∑n=1Nx(n)NP2=∑n=1N(x(n)−p1)2N−1p3=(∑n=1N∣x(n)∣N

白银时代的博客 1万+

LruCache和DiskCache总结

日常我们写程序的时候经常会使用到网络的图片,如果我们每次都去网上加载,那么性能难免会差一些,并且网络情况并不是总是 那么好,那么这时候我们就需要使用缓存了,我们学习android都知道图片的三级缓存,分别是内存缓存,硬盘缓存,网络缓存。 它的大体流程是这样的,给定一个网址,加载一张图片 如果内存缓存中存在,那就取出来,放上去,如果没有就找硬盘缓存 如果硬盘缓存中存在,那就取出来,放上去,并添...

流月的博客 1058

基于YOLOv5/v8/v10的垃圾分类识别系统:设计实现与性能优化(附代码+数据集)

做完这个毕设,你已经掌握了从数据准备、模型训练到界面开发的全流程。把模型部署到树莓派上,做个真正的“智能垃圾桶”硬件装置;加入语音提示功能,检测到垃圾后自动语音播报类别;试试融合多个YOLO模型的优势,让分类精度再上一个台阶。按照这个教程一步步做,你的毕设不仅能顺利完成,还能做出很多亮点。要是过程中遇到啥问题,别慌,慢慢琢磨或者咱们一起聊聊,肯定能把这个毕设做成让你满意的作品。

know_F0727的博客 463

【PCL常用分割器】SACSegmentation

是一种基于采样一致性(Sample Consensus)的点云分割方法。它通过从点云中选取少量样本,拟合参数化几何模型(如平面、圆柱),并评估所有点与模型的误差一致性,最终选择内点集合最优的模型作为分割结果。与其他分割器(Region Growing、EuclideanClusterExtraction)不同,它不依赖空间连通性,而是依赖几何一致性。

yijiujiusan的博客 1310

DiskCache

DiskCache基本概念DiskCache,故名思义,即磁盘缓存,与内存缓存对应,是Android应用缓存技术的重要一项,优点磁盘缓存存储时间长,存储空间相对UnLimited,缓存逻辑上(from UIL)主要分为DiskLruCache,LimitedAgeDiskCache,UnLimitedDiskCache。其中DiskLruCache是使用最多,最为经典的,出自大神JakeWharto

abc04052038的专栏 3263

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

DiskCache结构

UML如下: DiskCache 定义了从磁盘缓存中写入和读取的接口。 DiskLruCache 基于文件系统的一个有限空间的缓存,每一个缓存项都有一个字符串的键和一个固定数量的值,每个键必须匹配正则表达式([a-z0-9_-]{1,120})。值可以是字节序列,随机流或者文件。内部也是基于LRU算法,底层由LinkedHashMap实现。 Factory DiskCache...

nbsp22的博客 2856

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Python-diskcache 使用教程

`python-diskcache` 是一个基于磁盘和文件缓存的开源库,使用纯 Python 编写,与 Django 框架兼容。在云计算环境中,内存资源非常宝贵,而磁盘空间通常较为空闲。`python-diskcache` 可以利用这些空闲的磁盘空间进行缓存,相比 Memcached 和 Redis 等传统缓存解决方案,在某些场景下能够提供更优的性能。 该库提供了与 Django 兼容的 API...

gitblog_00761的博客 687

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

memoryCache和diskCache流程详解

Webkit的MemoryCache和DiskCache流程详解 MemoryCache简介:     MemoryCache顾名思义,就是将资源缓存到内存中,等待下次访问时不需要重新下载资源,而直接从内存中获取。Webkit早已支持memoryCache。     目前Webkit资源分成两类,一类是主资源,比如HTML页面,或者下载项,一类是派生资源,比如HTML页面中内嵌的图片或者脚本

m632587166的专栏 1万+

Python 之 diskcache 磁盘缓存工具

Python 之 diskcache 磁盘缓存工具

Looking的网页备忘录和个人知识库 1195

DiskCache:Python开发者的磁盘缓存利器

DiskCache是一个用纯Python编写的轻量级缓存库,它利用磁盘空间来存储缓存数据。与传统的内存缓存相比,DiskCache可以利用磁盘上未被充分利用的空间,为需要大量缓存数据的应用程序提供支持。它的核心是基于SQLite数据库,这使得它能够高效地管理缓存对象,同时支持SQL查询。DiskCache是一个开源的Python缓存库,它允许开发者利用磁盘空间来存储和管理缓存数据。与传统的内存缓存相比,DiskCache可以存储更多的数据,并且即使在系统重启后也能保持数据不丢失。

1243

diskcache,一个超强的 Python 库!

Python的DiskCache库是一个高效的磁盘缓存系统,专为需要快速且持久的缓存解决方案的应用设计。它提供了灵活的API,支持从基础到高级的多种缓存操作,如自动清理、函数结果缓存、并发处理支持以及缓存性能统计等。DiskCache的主要优势在于其将数据持久化到磁盘上,同时保持接近内存缓存的速度,非常适合处理大数据量或要求快速响应的场景。此外,它的线程安全和进程安全特性使其可在多线程和多进程环境中安全使用,非常适合现代多核心应用。DiskCache是任何需要持久化高性能缓存的开发者的理想选择。

涛哥聊Python 2485

【技术教程】DiskCache缓存技术

组件作用常用场景Cache最常用的缓存对象通用键值缓存Deque持久化的双端队列任务队列、爬虫去重Index带索引的字典,支持查询数据库替代、日志结构存储分片缓存,突破单文件大小限制(>数百GB)海量缓存场景下面重点讲解最常用的Cache函数结果缓存(替代 lru_cache,但支持持久化)爬虫URL去重(多进程安全)本地轻量级数据库(替代 SQLite 的简单场景)需要缓存大对象(几十MB以上)不想部署 Redis 但又想要类似功能。

Chandler2017的博客 1031

Python-diskcache安装与配置指南

`python-diskcache` 是一个Apache2许可的开源项目,它是一个纯Python编写的磁盘和文件支持的缓存库,兼容Django框架。该库利用了磁盘空间进行缓存,提高了存储效率,特别适用于内存资源紧张的环境。 主要编程语言:Python ## 2. 项目使用的关键技术和框架 - **SQLite数据库**:项目使用SQLite作为后端存储,保证了数据持久性和原子性。 - **文...

gitblog_00776的博客 638
上一篇: 【牛客Wannafly挑战赛23】F 计数
下一篇: Unity中各种格式计时器
badiu_30394251
博客等级 码龄11年 124粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值