缓存一个大对象并快速从缓存中读取烧瓶

时间:2013-01-09 06:58:53

标签: python caching memcached flask

我尝试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

有没有人有关于快速存储和读取缓存的想法?谢谢!

1 个答案:

答案 0 :(得分:2)

Flask-Cache使用Werkzeug缓存,它使用pickling库将任何缓存值序列化为二进制blob,因此可以将值保存在任何后端。对800MB的物体进行酸洗和去除可能需要相当长的时间,特别是如果它不只是一个大字符串或类似“简单”的东西。

此时,我认为最好编写自己的缓存,根据您使用的后端和您存储的数据类型进行定制。