我尝试flask-cache
缓存一个对象(大约800MB),如下所示:
@cache.memoize(50000)
def get_nmf_result():
return NMF_Recommendation(basis_path = app.config['BASIS_PATH'],
coef_path = app.config['COEF_PATH'],
mask_path = app.config['MASK_PATH'])
但我发现(1)进行缓存需要相当长的时间
(2)即使我缓存它,从缓存中读取仍需要一段时间。这是否意味着当我读取缓存时,实际上我得到的是copy
而不是缓存的reference
?
有没有人有关于快速存储和读取缓存的想法?谢谢!
答案 0 :(得分:2)
Flask-Cache使用Werkzeug缓存,它使用pickling库将任何缓存值序列化为二进制blob,因此可以将值保存在任何后端。对800MB的物体进行酸洗和去除可能需要相当长的时间,特别是如果它不只是一个大字符串或类似“简单”的东西。
此时,我认为最好编写自己的缓存,根据您使用的后端和您存储的数据类型进行定制。