Python 实现缓存管理类

在程序中使用缓存管理,可以带来多方面的好处,具体如下:

1、提高数据访问速度:缓存通常位于CPU和主内存之间,是一种更快但容量较小的存储设备。当程序运行时,常用的数据被加载到缓存中,这样CPU在需要这些数据时可以直接从缓存中快速获取,而不必等待较慢的主内存响应,从而极大地缩短了数据访问时间。
2、利用数据局部性:程序在执行时往往表现出数据局部性,即在短时间内倾向于重复访问某些内存区域。缓存通过存储这些频繁访问的数据来减少对主内存的访问次数,提高了处理效率。
3、减轻主内存压力:使用缓存可以减少对主内存的直接访问,这样主内存就不必频繁地处理所有的读写请求。这对于实时计算和大数据应用尤其重要,因为它们需要处理大量的数据且对性能要求较高。
4、节省能耗:频繁地从主内存读取数据会消耗更多的能量。缓存可以减少CPU与主内存之间的数据传输量,从而降低功耗,有利于延长电池寿命,尤其是在移动设备上尤为重要。
5、提高系统性能:缓存的存在可以提高整个系统的运行效率。它通过减少延迟和提升数据传输速率,使得系统能够更快地完成任务。
6、优化资源分配:缓存可以作为一种资源分配的手段,确保高频访问的数据能够得到快速的响应,而低频访问的数据则可以适当地使用较慢的存储设备,从而实现资源的合理分配。
7、提升用户体验:在用户界面和Web应用程序中,缓存可以用来存储用户的操作结果,以便快速响应用户的操作,提供更流畅的用户体验。
8、支持高并发访问:在服务器端,缓存可以用来处理大量并发请求,通过缓存热点数据,减轻后端数据库的压力,提高服务的可伸缩性和稳定性。
9、减少网络传输:对于分布式系统和云服务,缓存可以减少跨网络的数据请求,节省带宽,降低延迟。
缓存管理在程序中的应用可以显著提升性能、节省资源、优化用户体验,并支持系统的高并发和高可用性需求。然而,缓存的使用也需要谨慎,不当的缓存策略可能会导致数据不一致、增加系统复杂性和维护成本等问题。因此,设计高效的缓存策略也是提升系统性能的关键

from datetime import datetime, timedelta
import threading

#数据缓存处理工具
class GlobalCache:
    #初始化 缓存数据对象及线程锁
    def __init__(self):
        self._cache = {}
        self._lock = threading.Lock()

    #通过Key获取缓存中的数据
    def get(self, key):
        with self._lock:
            item = self._cache.get(key)
            #如果数据不为None,并且在有效时间内 (expiry 为None 表示长期有效)
            #则返回缓存数据
            if item is not None and (item["expiry"] is None or item["expiry"] > datetime.now()):
                return item["value"]
            else:
                #当时数据无效时,则将缓存数据移除
                self._cache.pop(key, None)
                return None
    
    #添加缓存, key为标签,value 为数据对象  expiry为有效时间,单位:秒
    def set(self, key, value, expiry=None):
        #计算有效时间
        expiry_time = datetime.now() + timedelta(seconds=expiry) if expiry else None
        #将数据添加到缓存中
        with self._lock:
            self._cache[key] = {"value": value, "expiry": expiry_time}

    #删除缓存数据 根据Key将缓存中的数据移除
    def delete(self, key):
        with self._lock:
            self._cache.pop(key, None)

    #清理当前缓存中的所有数据
    def clear(self):
        with self._lock:
            self._cache.clear()

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rotion_深

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

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

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

打赏作者

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

抵扣说明:

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

余额充值