簡介
主要在 Flask 連接 redis 一直發生問題,所以使用 Flask-Caching
來處理讀寫 redis.
但是還是有一點問題,就是 Flask-Caching
官方沒有支援讀取 redis 的用法,但是在網路上有看到一則留言。
成功所以紀錄一下。
程式碼在此 Github - CHunYenc/get-crypto-price-backend(dev/flask-no-celery)
Flask-Cacing 文檔 Flask-Caching docs
安裝 Flask-Caching
1
| pip install Flask-Caching
|
Init Flask-Caching
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| from flask_caching import Cache
cache = Cache(config={"CACHE_TYPE": "RedisCache"})
def create_app(env):
...
app = Flask(__name__)
app.config.from_object(config[env])
...
with app.app_context():
...
# Caching
cache.init_app(app)
...
|
讀 redis 特殊方式
1
2
3
4
| k_prefix = cache.cache.key_prefix
keys = cache.cache._write_client.keys(k_prefix + "*")
keys = [k.decode("utf8") for k in keys]
keys = [k.replace(k_prefix, "") for k in keys]
|
k_prefix 是 Flask-Caching 會自動加入 flask-cache 在 redis 上面,所以需要把 k_prefix 去除。
程式碼參考位置 /backend/app/socket.py