Python flask缓存:基于模式列出键?
我正在使用Flask缓存插件和Redis作为后端来缓存我的API响应。假设我有API来获取用户并创建如下用户:Python flask缓存:基于模式列出键?,python,caching,flask,redis,flask-cache,Python,Caching,Flask,Redis,Flask Cache,我正在使用Flask缓存插件和Redis作为后端来缓存我的API响应。假设我有API来获取用户并创建如下用户: /api/users?page=1 GET /api/users POST 获取结果将以完整URL作为键进行缓存。创建新用户时,我想删除所有以/api/users开头的键-目前我正在执行缓存.clear(),但这似乎不是必需的 然而,我似乎找不到API来获取密钥列表。对于redispy,有一个keys(*模式)API用于此目的。Flask Cache是否有类似的AP
/api/users?page=1 GET
/api/users POST
获取结果将以完整URL作为键进行缓存。创建新用户时,我想删除所有以/api/users
开头的键-目前我正在执行缓存.clear()
,但这似乎不是必需的
然而,我似乎找不到API来获取密钥列表。对于
redispy
,有一个keys(*模式)
API用于此目的。Flask Cache是否有类似的API?Flask Cache插件不提供任何原始redis命令的访问点。
您可以使用redis py连接到相同的redis实例和数据库,以按模式删除键
烧瓶缓存看起来过时了。您可以切换到由Flask缓存的分支维护的对象
按模式删除Redis键
您有两个选择:#存储在扩展名文件中的初始化缓存对象
从app.extensions导入缓存
def delete_模式(模式):
状态=错误
binary\u keys=cache.cache.\u read\u clients.keys(模式)
keys=[k.decode(“utf-8”,errors=“ignore”)表示二进制中的k\u键,如果k]
如果是关键点:
状态=cache.cache.\u write\u client.delete(*键)
返回状态
#传递要删除的模式
CACHE\u URL\u PAT=“flask\u CACHE*auth*”
删除模式(缓存URL PAT)
注意:
flask\u缓存
是flask缓存中的默认cache\u KEY\u前缀
。如果您对CACHE\u KEY\u PREFIX
使用了其他值,请使用该值(而不是flask\u CACHE\u
)作为搜索模式的前缀