Python Flask_caching-缓存
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-缓存相关推荐
- Python之缓存刷新
Python之缓存刷新 有些童鞋写了python脚本在linux执行,发现pingt打印的内容并不是预想的一样直接输出,不能实时获取python脚本输出日志,而是在脚本执行完成后才输出,这是啥子原因呢 ...
- python中用来回溯异常的模块_为什么Python线缓存会影响回溯模块而不影响...
考虑以下Python程序: code = """ def test(): 1/0 """ filename = "" c ...
- Python 函数缓存 (Function caching)
函数返回值缓存是优化一个函数的常用手段.我们可以将函数.输入参数.返回值全部保存起来,当下次以同样的参数调用这个函数时,直接使用存储的结果作为返回(不需要重新计算). 函数缓存允许我们将一个函数对于给 ...
- python清除缓存的命令_python怎么删除缓存文件
python删除缓存文件的方法: 首先输入"find.-name '__pycache__' -type d -exec rm -rf {} \"命令删除所有子目录: 然后输入&q ...
- pythonのdjango 缓存
由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...
- python整数缓存问题
python仅仅对比较小的整数对象进行缓存(范围是[-5,256]),而并非所有整数对象.但需要注意的是,这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行时,结果是不一样的,这是因为解释器 ...
- python redis缓存_第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
- python实现缓存_python实现本地缓存
python简单模拟的本地轻量级缓存 思路: 字典的形式保存缓存数据,同时增加增加过期时间,如{'key':{'expire': 1524363282, 'data': 2}},但这样的话何时回收呢, ...
- python清除缓存的命令_python-操作缓存
参考王智刚同学博客 操作Mmecached 1. 安装API python -m pip install python-memcached 2. 启动memcached memcached -d -u ...
- python实现缓存_Python实现缓存
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 注意:本文是一个存根.稍会将发布有关不同的简单缓存实现的更详细分析.请参阅下面的注解获得大致的摘要. 以下 ...
最新文章
- 新手神器!不用部署深度学习环境、上传数据集!(附代码视频教程)
- Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(4)...
- Linux远程软件xshell的使用
- 可以获取python整数类型帮助的是什么-python数据类型一(重点是字符串的各种操作)...
- 【Python入门】Python之OS模块39个常用函数详解
- mysql varchar,bigint,char三种类型性能的比较
- 贝叶斯网的R实现( Bayesian networks in R)bnlearn(2)
- 最全Handler解读,持续补充...
- Java关于数据结构的实现:散列
- html倾斜变形,深入理解CSS变形transform(2d)_html/css_WEB-ITnose
- 稀疏分解中的MP与OMP算法
- 本特利框架3500/05-01-01-CN-00
- 游戏软件提示dll丢失、缺少dll等解决方法及dll文件大合集
- archlinux for wps 字体缺失解决办法
- Android 圆形调色板
- html svg 线条动画,HTML5 SVG简单的动态绘制轮廓线条动画插件
- MySQL添加新用户、创建数据库、为新用户分配权限、收回权限
- 【计算机科学速成课】[40集全/文字版] - 17.集成电路摩尔定律
- android5版本主流手机,你达标没?最受欢迎安卓手机配置:5.5寸/6GB/安卓7.0...
- 如何使用Access创建一个简单MIS管理系统_Access