python实现本地缓存

本文介绍了使用Python实现本地缓存的一种方法,通过 WeakValueDictionary 实现数据的自动回收。利用字典保存缓存数据,并结合过期时间和弱引用,当缓存项不再被引用时自动删除,以达到内存管理的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python简单模拟的本地轻量级缓存

思路:

  1. 字典的形式保存缓存数据,同时增加增加过期时间,如{'key':{'expire': 1524363282, 'data': 2}},但这样的话何时回收呢,如果单独起个程序扫描过期的数据清除key,貌似又过于复杂了,这里采用弱引用。
  2. WeakValueDictionary的特性:如果value值没有强引用了,那么对应的记录就会被回收
  3. 所以还需要定义strongRef来强引用,并放入collections.deque来保持强引用,deque队列可定义大小,那么超过阀值的老元素就会被弹出,也就消除了强引用,也就会被马上回收

 

# coding: utf-8

import weakref, collections


class LocalCache():
    notFound = object()

    # list dict等不支持弱引用,但其子类支持,故这里包装了下
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值