1
我在應用中使用flask-cache並試圖在單獨的進程中預填充緩存。問題是我無法弄清緩存值的格式。如何使用由flask-cache創建的緩存值使用
看着緩存的值,他們看起來像被醃了,但緩存函數創建的值與正常的pickle值稍有不同並且不能直接取出。這裏有一個例子:
這裏是我的燒瓶觀點:
@app.route('/index')
@cache.cached(timeout=60)
def index():
return 'foo'
這裏是我的觀點的緩存值,存儲在Redis的:
>>> r = redis.StrictRedis()
>>> r.keys()
[b'flask_cache_view//index']
>>> r.get('flask_cache_view//index')
b'!\x80\x03X\x03\x00\x00\x00fooq\x00.'
通知緩存的字節串擁有國內領先的「! 」。比較人工酸洗「富」:
>>> import pickle
>>> pickle.dumps('foo')
b'\x80\x03X\x03\x00\x00\x00fooq\x00.'
後者可以拆封,而是試圖在unpickle錯誤燒瓶緩存值結果「_pickle.UnpicklingError:‘!’無效負載的關鍵。」
因爲我不完全理解這個問題,所以我不習慣實現一個解決方案(例如,在所有字節串中刪除/預先加上'!')。我在正確的軌道上嗎?
這正是我所期待的。謝謝! – daveruinseverything