flask 配置使用缓存

如果应用运行很慢,可以尝试引入一些缓存,缓存的工作是什么呢?

比如有一个需要一段时间才能完成的函数,但是这个函数的返回结果可能在5分钟之内都是足够有效的,因此可以将这个结果放在缓存中一段时间,而不用反复计算 flask本身不提供缓存,但是作为flask基础的werzeug库,提供了一些基础的缓存支持,支持多种缓存后端,通常选择是memcached服务器

配置缓存

类似于建立一个flask对象一样,创建一个缓存对象,然后将对象保持存在, 如果使用的是开发服务器,可以创建一个simplecache对象,这个对象将元素缓存在python解释器控制的内存中

from werkzeug.contrib.cache import SimpleCache
cache = SimpleCache()

如果希望使用memcached进行缓存,确保已经安装了memcache模块支持,并且拥有一个可用的memcached服务器正在运行 可以连接到缓存服务器

from werkzeug.contrib.cache import MemcachedCache
cache = MemcachedCache(['127.0.0.1:11211'])

如果使用app engine,可以通过代码连接到app engine的缓存服务器

from werkzeug.contrib.cache import GAEMemcachedCache
cache = GAEMemcachedCache()

使用缓存

有两个非常重要的函数可以用来使用缓存,get()和set(), 从缓存中读取项目,使用的是get(), 如果缓存中存在对应的项目,将会返回,否则函数将会返回None

rv = cache.get('my-item')

在缓存中添加项目,使用set()函数,第一个参数是想要设定的键,第二个参数是想要缓存的值 可以设定一个超时时间,当时间超过时候,缓存系统将会自动清除这个项目

def get_my_item():
    rv = cache.get('my-item')
    if rv is None:
        rv = calculate_value()
        cache.set('my-item', rv, timeout=5 * 60)
    return rv
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,237评论 22 257
  • 一、MemCache简介 session MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存...
    李伟铭MIng阅读 3,873评论 2 13
  • 1、memcache的概念? Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨...
    桖辶殇阅读 2,280评论 2 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 先把事情的简单的述说一下,有一天,室友们说一起出去吃个饭吧,于是就商量去吃什么,对于我们这个年龄的人来说似乎出...
    GabrielMorningS阅读 342评论 0 1