zoukankan      html  css  js  c++  java
  • flask 缓存使用

    缓存

    当你的应用变慢的时候,可以考虑加入缓存。至少这是最简单的加速方法。缓存有什 么用?假设有一个函数耗时较长,但是这个函数在五分钟前返回的结果还是正确的。 那么我们就可以考虑把这个函数的结果在缓存中存放一段时间。

    Flask 本身不提供缓存,但是它的基础库之一 Werkzeug 有一些非常基本的缓存支持。 它支持多种缓存后端,通常你需要使用的是 memcached 服务器。

    设置一个缓存

    与创建 Flask 对象类似,你需要创建一个缓存对象并保持它。如 果你正在使用开发服务器,那么你可以创建一个SimpleCache 对象。这个对象提供简单的缓存, 它把缓存项目保存在 Python 解释器的内存中:

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

    如果你要使用 memcached ,那么请确保有 memcache 模块支持(你可以从 PyPI 获得模块)和一个正在运行的 memcached 服务器。 连接 memcached 服务器示例:

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

    如果你正在使用 App Engine ,那么你可以方便地连接到 App Engine memcache 服务器:

    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
  • 相关阅读:
    微信小程序与Html交互
    vue plupload 的使用
    mac 使用远程连接
    ajax 设置Access-Control-Allow-Origin实现跨域访问
    javascript取模运算是怎么算的?其实是取余数
    [G]Java获取泛型T的类型 T.class
    [G]java反射获得泛型参数getGenericSuperclass()
    Java中的Type类型详解
    利用ParameterizedType获取泛型参数类型
    Type类型详解
  • 原文地址:https://www.cnblogs.com/wangdongpython/p/11066338.html
Copyright © 2011-2022 走看看