Python Flask_caching-缓存

安装:

pip install Flask-Caching

初始化使用演示

# app.py
app = Flask(__name__)
cache = Cache(app, config={'CACHE_TYPE' : 'simple'})
app.extensions['cache_key'] = cache# ***.py
# 调用 .cache 返回cache对象
cache = current_app._get_current_object().extensions.get('cache_key').cache
# 调用set添加,get获取
cache.set(1, '1', timeout)
cache.get(1)

配置参数

参数 说明
CACHE_TYPE 指定cache类型,填入参数返回cache对象(遵循werkzeug cache API)
CACHE_NO_NULL_WARNING null 类型时的警告消息
CACHE_ARGS 在缓存类实例化过程中解包和传递的可选列表,用来配置相关后端的额外的参数
CACHE_OPTIONS 可选字典,在缓存类实例化期间传递,也是用来配置相关后端的额外的键值对参数
CACHE_DEFAULT_TIMEOUT 默认过期时间,单位为秒
CACHE_THRESHOLD 缓存最大数量,SimpleCache 和FileSystemCache类型时使用
CACHE_KEY_PREFIX cache_key前缀, RedisCache, MemcachedCache 和GAEMemcachedCache类型时使用
CACHE_UWSGI_NAME 举例 mycache@localhost:3031,默认为空时,本地模式 。如果缓存与werkzeug应用程序位于同一实例中,则只需提供缓存名称 默认为空时,本地模式
MEMCACHED类型参数
CACHE_MEMCACHED_SERVERS 可以为list或者tuple
CACHE_MEMCACHED_USERNAME
CACHE_MEMCACHED_PASSWORD
redis类型参数
CACHE_REDIS_HOST
CACHE_REDIS_PORT 默认6379
CACHE_REDIS_PASSWORD
CACHE_REDIS_DB 默认 0
CACHE_REDIS_URL URL to connect to Redis server
CACHE_DIR 存储cache的路径. FileSystemCache类型时使用

内置cache类型,CACHE_TYPE:

  • null: NullCache (default)
  • simple: SimpleCache
  • filesystem: FileSystemCache
  • redis: RedisCache (Werkzeug >= 0.7 and redis required)
  • uwsgi: UWSGICache (Werkzeug >= 0.12 and uwsgi required)
  • memcached: MemcachedCache (pylibmc or memcache required)
  • gaememcached: GAEMemcachedCache
  • saslmemcached: SASLMemcachedCache (pylibmc required)
  • spreadsaslmemcached: SpreadSASLMemcachedCache (pylibmc required)

使用Redis例子

class RedisCache(BaseCache):def __init__(self, servers, default_timeout=500):passdef redis(app, config, args, kwargs):args.append(app.config['REDIS_SERVERS'])return RedisCache(*args, **kwargs)

Cache初始化参数:

参数 说明
app flask的app对象没有则创建
with_jinja2_ext 默认支持jinja2语法
config 配置参数

常有方法

方法类似于dict,方法名字类似于set

方法名 说明
clear() 清除缓存
get(key) 获取一个键的值,如果值是json格式会自动转化成字典
set(key,value,timeout) 设置一个键值,value可以是字典,会自动转化json格式的字符串
set_many(key,value,timeout) 设置多个键值对
add(key, value, timeout=None) 设置一个键值,如果存在就pass,注意和set的区别
delete(key) 删除键
delete_many(k1,k2…) 删除多个键值
get_many(k1,k2…) 获取多个键的值
get_dict(k1,k2…) 获取多个键的值,返回一个字典
has(k) 查询是否存在一个键
inc(self, key, delta=1) 将键的值加一
dec(self, key, delta=1) 将键的值减一

Python Flask_caching-缓存相关推荐

  1. Python之缓存刷新

    Python之缓存刷新 有些童鞋写了python脚本在linux执行,发现pingt打印的内容并不是预想的一样直接输出,不能实时获取python脚本输出日志,而是在脚本执行完成后才输出,这是啥子原因呢 ...

  2. python中用来回溯异常的模块_为什么Python线缓存会影响回溯模块而不影响...

    考虑以下Python程序: code = """ def test(): 1/0 """ filename = "" c ...

  3. Python 函数缓存 (Function caching)

    函数返回值缓存是优化一个函数的常用手段.我们可以将函数.输入参数.返回值全部保存起来,当下次以同样的参数调用这个函数时,直接使用存储的结果作为返回(不需要重新计算). 函数缓存允许我们将一个函数对于给 ...

  4. python清除缓存的命令_python怎么删除缓存文件

    python删除缓存文件的方法: 首先输入"find.-name '__pycache__' -type d -exec rm -rf {} \"命令删除所有子目录: 然后输入&q ...

  5. pythonのdjango 缓存

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...

  6. python整数缓存问题

    python仅仅对比较小的整数对象进行缓存(范围是[-5,256]),而并非所有整数对象.但需要注意的是,这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行时,结果是不一样的,这是因为解释器 ...

  7. python redis缓存_第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  8. python实现缓存_python实现本地缓存

    python简单模拟的本地轻量级缓存 思路: 字典的形式保存缓存数据,同时增加增加过期时间,如{'key':{'expire': 1524363282, 'data': 2}},但这样的话何时回收呢, ...

  9. python清除缓存的命令_python-操作缓存

    参考王智刚同学博客 操作Mmecached 1. 安装API python -m pip install python-memcached 2. 启动memcached memcached -d -u ...

  10. python实现缓存_Python实现缓存

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 注意:本文是一个存根.稍会将发布有关不同的简单缓存实现的更详细分析.请参阅下面的注解获得大致的摘要. 以下 ...

最新文章

  1. 新手神器!不用部署深度学习环境、上传数据集!(附代码视频教程)
  2. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(4)...
  3. Linux远程软件xshell的使用
  4. 可以获取python整数类型帮助的是什么-python数据类型一(重点是字符串的各种操作)...
  5. 【Python入门】Python之OS模块39个常用函数详解
  6. mysql varchar,bigint,char三种类型性能的比较
  7. 贝叶斯网的R实现( Bayesian networks in R)bnlearn(2)
  8. 最全Handler解读,持续补充...
  9. Java关于数据结构的实现:散列
  10. html倾斜变形,深入理解CSS变形transform(2d)_html/css_WEB-ITnose
  11. 稀疏分解中的MP与OMP算法
  12. 本特利框架3500/05-01-01-CN-00
  13. 游戏软件提示dll丢失、缺少dll等解决方法及dll文件大合集
  14. archlinux for wps 字体缺失解决办法
  15. Android 圆形调色板
  16. html svg 线条动画,HTML5 SVG简单的动态绘制轮廓线条动画插件
  17. MySQL添加新用户、创建数据库、为新用户分配权限、收回权限
  18. 【计算机科学速成课】[40集全/文字版] - 17.集成电路摩尔定律
  19. android5版本主流手机,你达标没?最受欢迎安卓手机配置:5.5寸/6GB/安卓7.0...
  20. 如何使用Access创建一个简单MIS管理系统_Access

热门文章

  1. 【嵌入式系统开发13】采用串口中断方式完成单字符接受与字符串接受
  2. 债券价格和到期收益率的关系_[债券知识]什么是到期收益率?到期收益率与债券价格的关系 - 南方财富网...
  3. 华为试玩模式退出账号重新登录后,试玩时间又变回60分钟
  4. Flex中label换行
  5. ES6的 for of 循环详解
  6. SQL------COLUMN命令
  7. Process Explorer调试
  8. 使用ffmpeg连接音视频
  9. vs2013 解决方案资源管理器 怎样靠左
  10. 三个处女结婚后的反映