flask取mysql数据很慢,Python的Flask速度慢?用缓存技术加速!

在Web服务中,使用缓存是一种加速程序运行的重要技术。

这是因为,不同的存储介质,是有速度上很大的差异的,比如一个Web服务会使用典型的三级存储技术:

MySQL:底层数据存储,保证数据的准确一致性;

Redis:缓存第一层,分布式内存数据库,比MySQL快很多;

本地缓存:就是在Web服务本地内存中缓存,速度更快;

本文介绍Python程序怎样在本地内存缓存数据的方法,介绍两种方式:

方法1:使用Python自带的functools.lru_cache

但是functools.lru_cache不支持按时间的过期,比如5秒钟缓存生效重新拉取,因此进行如下的改造:

把这个代码放到一个文件里

from functools import lru_cache, wrapsfrom datetime import datetime, timedeltadef timed_lru_cache(seconds: int, maxsize: int = 128):def wrapper_cache(func):func = lru_cache(maxsize=maxsize)(func)func.lifetime = timedelta(seconds=seconds)func.expiration = datetime.utcnow() + func.lifetime@wraps(func)def wrapped_func(*args, **kwargs):if datetime.utcnow() >= func.expiration:func.cache_clear()func.ex

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值