Python使用本地缓存库diskcache

diskcache:Python轻量磁盘缓存库,替代Redis的实用之选 缓存是提升程序性能的关键手段,常见的内存缓存(如functools.lru_cache)受限于进程生命周期和内存大小,而分布式缓存如Redis功能强大但部署成本较高。基于SQLite的磁盘缓存方案应运而生:它利用数据库文件存储序列化数据,实现了持久化与跨进程共享。diskcache正是这样的纯Python缓存库,它提供类似字典的接口,支持TTL过期、多进程文件锁和LRU淘汰机制,无需额外服务即可在大数据量爬虫、数据清洗等场景中显著降低重复IO和计算开销。当单机多进程需要可靠缓存时,diskcache是介于内 阅读详情
AI摘要

本文介绍了Python中的diskcache库,一个基于SQLite的本地磁盘缓存工具,如何设置、读取、管理缓存数据,以及过期时间的处理。,

以下为授权转载的一盎司科技公众号文章


Python日常使用过程中可能存在缓存需求,譬如将远程数据缓存到本地,方便查询等。下面将简单介绍本地磁盘缓存库diskcache,它基于SQLite数据库而实现,无需服务端即可使用。

示例代码地址:

GitHub地址:https://github.com/iounce/python-cpp-demo

Gitee地址:https://gitee.com/iounce_admin/python-cpp-demo

环境

  • Windows操作系统:Windows10(21H2,19044.1766)

  • C++开发环境:Visual Studio 2022社区版

  • Python:3.10.4

  • Diskcache: 5.6.3

安装Diskcache

在Python中使用,直接使用如下命令安装即可:

pip install diskcache

简单调用

Diskcache库核心为Cache类,可以设置缓存文件路径,然后使用set/get函数即可增加和获取缓存数据。

图片

多次set设置,值以最后一次为准,执行结果如下:

图片

详细参数说明如下:

图片

图片

可以增加过期时间等,并验证效果:

图片

使用touch更新缓存时间,但对于已过期的无效:

图片

图片

使用delete删除缓存,clear清除所有缓存:

图片

Diskcache库使用简单方便,利用了SQLite的很多优点,可以作为本地缓存的一种替代方式。

使用Python本地缓存提升应用性能:实用指南 缓存是一种常用的技术,用于临时存储数据,以便快速访问。在Python项目中,利用本地缓存可以显著提升应用的性能。本文将介绍如何在Python项目中使用现有的本地缓存工具,并设置缓存时间。 阅读详情

相关推荐

python-11-高效的python缓存库DiskCache

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

qq_20466211的博客 1305

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

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

彭世瑜的博客 1955

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

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

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

1243

数分实战(01):Global_Superstore数据集解析与商业洞察

本文以Global_Superstore零售数据集为例,手把手指导数据分析实战全流程。从数据清洗、探索性分析到深度商业洞察,详细解析了如何通过Python处理缺失值与异常值,进行销售利润分析、客户细分与地理分析,并探讨了折扣与利润的微妙关系。文章旨在帮助读者建立数据分析思维框架,从数据中挖掘可指导实际业务决策的核心洞察。

weixin_28487433的博客 342

Python抓取摄像头图像,进行AI识别(一)

本文介绍了如何用Python获取海康威视摄像头的图像并进行AI识别。主要内容包括:1)准备工作,包括摄像头IP设置和密码重置方法;2)使用Python的Requests库通过ISAPI接口获取实时图像;3)示例代码展示如何保存摄像头图像。整个过程为后续AI图像识别提供了基础,通过简单的Python代码即可实现专业监控设备的图像采集功能。

Hahafantuan的博客 1513

diskcache,一个超强的 Python 库!

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

涛哥聊Python 2484

Calibre电子书阅读器个性化样式定制指南

本文详细介绍了如何通过Calibre电子书阅读器的用户样式表功能进行深度个性化样式定制。从修改全局字体、行距、背景配色(包括深色/浅色模式)到美化代码块、引用等特殊元素,本指南提供了完整的CSS代码示例与实战技巧,帮助用户打造专属的舒适阅读环境,显著提升电子书阅读体验。

vv45678的博客 920

Python DiskCache 磁盘缓存库使用教程

Python DiskCache 是一个高性能的磁盘和文件支持的缓存库,提供了类似字典的接口,同时支持多种高级缓存功能。本文将详细介绍该库的安装和使用方法。 ## 安装指南 ### 使用 pip 安装 推荐使用 pip 工具进行安装,这是最简单的方式: ```bash pip install --upgrade diskcache ``` 该库采用 `major.minor.micro`...

gitblog_00240的博客 831

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 406

RK3588S之CPU--benchmark(一)

本章会基于RK3588S来介绍有关CPU常用的benchmark工具及测试过程

文艺小少年的博客 1498

Python-diskcache 使用教程

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

gitblog_00761的博客 687

《电磁兼容设计》专栏说明

本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限

linkking27的博客 791

Python 爬虫进阶篇——diskcache缓存

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

th1522856954的博客 3069

高云FPGA系列教程(4):片上逻辑分析仪GAO的使用

STM32等单片机,使用J-Link或ST-Link等调试器,可以进行在线调试,由于C代码是顺序执行的,我们可以插入断点,让程序停在我们需要的位置,或者是实时查看一些变量的数值,大大提高了我们Debug的速度,提高产品的开发效率。,连接到FPGA芯片的外部管脚上,如果想查看内部信号,还需要把这些信号定义成Output引出到外部管脚进行了测量,如果是多位数据,这样就会占用大量的管脚,但是此类工具有个优点就是支持多种协议解析,可以非常方便的查看协议的报文数据。当所有的仿真没问题了,才能进行最后一步:板级调试。

whik1194的博客 5028

SAP 实施:Waterfall vs. Agile —— 一场“结构性矛盾“的深刻比较先说结论:在 SAP 世界里,这从来不是“谁更好“的宗教问题,而是“你的项目 DNA 是什么“的战略选择。​

SAP 实施:Waterfall vs. Agile —— 一场"结构性矛盾"的深刻比较 先说结论:在 SAP 世界里,这从来不是"谁更好"的宗教问题,而是"你的项目 DNA 是什么"的战略选择。​ SAP 早已用 SAP Activate​ 给出了官方态度——它不是纯 Agile,也不是回头去搞旧 Waterfall,而是一个带质量门的混合架构。 1. 先回到本质:两者解决的是不同维度的风险 维度 Waterfall(传统 ASAP 路线)​ Agile(SCRUM/Kanban 式迭代)​

金牌架构师 336

Python-diskcache 项目使用教程

`python-diskcache` 是一个基于磁盘和文件的后端缓存库,它使用纯 Python 编写,与 Django 兼容。项目的目录结构如下: ``` python-diskcache/ ├── .github/ # GitHub 工作流和自动化脚本 ├── docs/ # 项目文档 ├── tests/ ...

gitblog_00126的博客 657

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python 之 diskcache 磁盘缓存工具

Python 之 diskcache 磁盘缓存工具

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python-diskcache安装与配置指南

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

gitblog_00776的博客 638

python-diskcache核心API详解:Cache、FanoutCache和DjangoCache的完整使用教程

python-diskcache是一个纯Python实现的磁盘缓存库,它比Redis和Memcached更快,并且与Django兼容。本文将详细介绍其核心API,包括Cache、FanoutCache和DjangoCache的使用方法,帮助新手快速掌握这个强大的缓存工具。 ## 1. Cache:基础磁盘缓存 Cache是python-diskcache的核心类,提供了基本的键值对存储功能。它

gitblog_00938的博客 963

diskcache

DiskCache: Disk Backed Cache DiskCacheis 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...

weixin_30394251的博客 500

【量化数据】使用DiskCache高效、持久化存取股票行情信息,彻底解决行情焦虑!

量化交易,数据先行。可你是不是也经常遇到:行情没下载读取不到,下载了读取不够快,直接订阅行情数量又不够,或者速度不够快。那么你可以尝试一下下面这个方法。我们这里只是简单的介绍了DiskCache的一下主要操作和用法,并对量化需要用到的行情信息读写进行了展示,作为基本应用已经足够用了,基本操作也就这些了。在使用了mysql,sqlite,txt,redis,综合速度和持久化,个人更倾向于DiskCache。量化交易,数据先行。

IT里的交易员-博客 1518

【技术教程】DiskCache缓存技术

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

Chandler2017的博客 1031

Python磁盘缓存实战:用diskcache打造持久化高性能本地缓存

缓存是提升应用性能的常用手段,内存缓存虽快但无法持久化,而分布式缓存如Redis又带来了额外的部署与运维成本。在单机或小规模项目中,如何用最低成本获得可靠、持久且支持多进程共享的缓存能力?基于SQLite的磁盘缓存方案应运而生。它利用本地数据库文件存储序列化数据,进程重启不丢失,并通过内置的并发控制、过期时间和分片机制,解决了重复计算和跨进程数据共享的问题。无论是爬虫的URL去重与响应缓存,数据处理中的中间结果复用,还是Web服务下的高并发查询加速,磁盘缓存都能显著降低延迟与资源消耗。本文深入解析Pytho

weixin_33393017的博客 228

Python-DiskCache 缓存性能基准测试深度解析

在软件开发中,缓存技术是提升应用性能的重要手段之一。Python-DiskCache 作为一个基于磁盘的缓存解决方案,在性能和持久性之间取得了良好的平衡。本文将深入分析 Python-DiskCache 的性能表现,并与 Memcached 和 Redis 等常见缓存系统进行对比。 ## 基准测试方法论 ### 测试环境与设计 性能测试采用了严谨的基准测试方法,主要考察以下几个方面: 1....

gitblog_00146的博客 444

python-diskcache快速入门指南:10分钟学会使用高性能磁盘缓存

python-diskcache是一个纯Python实现的磁盘缓存库,兼容Django缓存接口,性能甚至超越Redis和Memcached。本指南将帮助你在10分钟内快速掌握这个强大工具的使用方法,让你的Python应用获得高效的缓存支持。 ## 为什么选择python-diskcache? 在传统缓存方案中,随着并发量增加,常常会出现性能瓶颈。传统缓存的并发处理模式如图所示: [![传统缓

gitblog_00447的博客 1109
上一篇: C++使用只包含头文件的JSON库
下一篇: Python使用yaml格式
iounce
博客等级 码龄18年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值