在Python中使用内存模式下的sqlite3作为缓存是一个好主意吗?

在Python中使用内存模式下的sqlite3作为缓存是一个好主意吗?,python,sqlite,Python,Sqlite,在python中,我们可以创建内存中的sqlite3连接: 导入sqlite3 conn=sqlite3(“:内存:”) 那么,将其用作内存缓存数据库是一个好主意吗?尤其是在小型或中型案件中 我不确定sqlite3模块是否是用Python或C或其他语言编写的,因此我也不确定内存效率和性能 通常redis作为缓存数据库的性能很好,但它使应用程序更重,并带来更多的管理工作 另外,也欢迎其他替代解决方案,只要它们足够轻。Dictionary,也许?如果您对相同的Python代码运行多个进程(例如在

在python中,我们可以创建内存中的sqlite3连接:


导入sqlite3
conn=sqlite3(“:内存:”)

那么,将其用作内存缓存数据库是一个好主意吗?尤其是在小型或中型案件中


我不确定sqlite3模块是否是用Python或C或其他语言编写的,因此我也不确定内存效率和性能

通常redis作为缓存数据库的性能很好,但它使应用程序更重,并带来更多的管理工作


另外,也欢迎其他替代解决方案,只要它们足够轻。

Dictionary,也许?如果您对相同的Python代码运行多个进程(例如在wsgi容器中),您将得到数据库的多个独立副本。像在Redis中一样,将其分开是个好主意。您需要SQL吗?如果是这样,sqlite3就有意义了。我使用内存中的sqlite3作为磁盘上sqlite3前面的缓存,因为在两者之间来回移动查询非常简单,并且在中小型(就像sqlite3对持久性存储有意义的那种规模…)下工作得非常好。另一方面,如果您只需要一个键值存储,那么将其包装到关系数据库中并生成和解析SQL对于代码和运行时开销来说是不必要的复杂性。“我不确定sqlite3模块是用Python或C编写的”您试过看吗?第一句话的开头是“SQLite是一个C库…”,但实际上,对于一个处理小型表的数据库引擎来说,原始处理能力并不是那么重要。如果你想知道某样东西是否足够有效,猜测它是用什么语言写的并不是很有用;建立一个与您的使用情况近似的基准并运行它。