如何从 Flask 缓存中检索所有密钥?

Yaa*_*ler 8 caching flask

我正在调试一个 Flask 应用程序,想要查看哪些值存储在我的简单缓存中。有没有办法检索所有密钥?(就像你用字典一样......

cache = Cache()
cache.init_app(app, config={"CACHE_TYPE": "simple"})

cache.set("item-1", "red")
cache.set("item-2", "blue")

# I would like to do the following:
# cache.keys()
Run Code Online (Sandbox Code Playgroud)

v25*_*v25 6

基于Flask-Caching 的源代码(不要使用 Flask-Cache,因为它已经过时了)...

似乎没有内置方法可以在不提供键的情况下获取所有值,但为了调试,您可以执行以下操作:

>>> for k in cache.cache._cache:
...  print (k, cache.get(k))
... 
item-1 red
item-2 blue
Run Code Online (Sandbox Code Playgroud)

None这似乎返回过期项目的值:

item-1 None
Run Code Online (Sandbox Code Playgroud)

cache.cache._cache是带有腌制值的字典。

但是您还应该意识到“简单”缓存并不是真正的线程安全,因为它仅使用字典进行存储。对于较大的应用程序,您应该切换到不同的后端,例如 Redis。