【Python】如何实现Cche的功能(详细教学)

本文介绍了Python库cachetools的使用,包括基本Cache、FIFOCache、LFUCache、LRUCache等,以及具有TTL(时间戳)功能的TTLCache,展示了如何通过内存限制和时间限制来自动管理缓存数据,提高数据查询和修改的效率。
摘要由CSDN通过智能技术生成

—近期要实现一个小的功能:我需要在短期内对某些数据进行快速查询、修改等操作,但这些数据仅仅在短期内会用到,过一小段时间就可以销毁了。
所以,为了提高数据的操作效率,放在内存中无疑是非常合适的,但是内存总是有限的,总不能无限地放吧,内存溢出了咋办?

所以,有没有一种自动回收机制,可以过一小段时间自动将旧的数据进行移除或替换呢?

仔细一想,这不就相当于一个 Cache 吗?既能在短期内实现快速查询、修改等操作,等不用了就被自动置换掉。

是的,没错,那在 Python 中有没有类似实现呢?

有的,叫做 cachetools,这里我们就来简单介绍下它的用法。

介绍

cachetools,这是一个可扩展的基于内存的 Collections、Decorators 的封装实现。

因为是 Cache,那么就一定有它的页面置换算法。根据操作系统学过的一些知识,置换算法就会有 LRU、LFU、FIFO 等等。比如说,当 Cache 已经满了的情况下,如果这时候再插入一个新的数据,那么这时候就需要根据页面置换算法对已有的数据进行置换,用新的数据替代旧的数据,保证 Cache 最大占用量不会超标。

废话不多说了,这里我们来体验下这个库的具体用法吧。

首先是安装,直接使用 pip3 安装即可:

pip3 install cachetools
安装好之后,我们再来看看它的具体用法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、基本 Cache 的使用

1.引入库

我们来看一个简单的实例:

from cachetools import Cache

cache = Cache(maxsize=3)
cache['1'] = 'Hello'
cache['2'] = 'World'
print('current size', cache.currsize)
cache.pop('2')
print(cache.items)
print('length', len(cache))
cache['3'] = 'Hello'
cache['4'] = 'World'
print('current s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐浪老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值