我有一个烧瓶应用程序需要存储来自请求的一些信息。这些信息非常短暂,如果服务器重新启动,我就不再需要了 - 所以我真的不需要持久性。
我已阅读here,可以使用内存中保存的Sqlite数据库。管理数据库连接的最佳方法是什么?在烧瓶文档中,根据需要创建了与数据库的连接,但是我的数据库will be deleted if I close the connection。
答案 0 :(得分:4)
在内存中使用sqlite db的问题是无法从多个线程访问您的Sqlite内存数据库。
http://www.sqlite.org/inmemorydb.html
为了解决这个问题,您可能会有多个进程运行您的应用程序,这使得使用内存中的全局变量也是不可能的。
因此,除非您确定您的应用只需要一个线程或一个进程(这是不可能的),否则您将需要:
我个人选择2。
您可以使用memcached,在中央服务器上运行,甚至在您的应用服务器上运行,如果您只有一个。这将允许您暂时将状态(包括python对象!)存储在内存中,甚至可以设置数据到期时的超时值,这些值可能会对您的应用程序有用。
由于您正在使用Flask,因此您对使用memcached缓存有一些非常好的内置支持,请在此处查看:http://flask.pocoo.org/docs/patterns/caching/
至于在服务器上运行memcached,它实际上只是apt-get
或yum install
。如果您有任何疑问或挑战,请告诉我,我们很乐意更新。