—近期要实现一个小的功能:我需要在短期内对某些数据进行快速查询、修改等操作,但这些数据仅仅在短期内会用到,过一小段时间就可以销毁了。
所以,为了提高数据的操作效率,放在内存中无疑是非常合适的,但是内存总是有限的,总不能无限地放吧,内存溢出了咋办?
所以,有没有一种自动回收机制,可以过一小段时间自动将旧的数据进行移除或替换呢?
仔细一想,这不就相当于一个 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