如何让SQLAlchemy使用Memcached?

bod*_*ydo 8 memcached sqlalchemy

有没有人一起加入SQLAlchemy和Memcached,以便SQLAlchemy返回的结果在Memcached中缓存?目前我不知道如何自己实施,我完全失去了寻求帮助.

谢谢,Boda Cydo.

Ant*_*sma 8

请参阅SQLAlchemy源代码中的beaker缓存示例,了解如何将缓存集成到SQLAlchemy应用程序中.Beaker可以使用Memcached作为缓存存储.


bob*_*nce -3

Memcache 和关系数据库是两个不同的东西,它们的工作方式根本不同。Memcache 是一个简单的查找存储桶,对于转储像部分网页这样的 Blob 很有用,因为这些 Blob 在许多请求之间共享,并且需要很长时间才能生成(当您无法合理地优化/反规范化数据库模式以使其快速生成时)生产)。

\n\n

像完整后端数据存储一样使用 memcache 并不是一个好主意,并且提供一个连接到 memcache 或数据库的 SQL 接口也没有什么用处:你会得到两个世界中最糟糕的结果,而没有 memcache 的简单性/速度或关系数据库的 ACID 合规性。

\n\n

您的数据库服务器已经有缓存。如果您希望它缓存更多,请尽可能调高缓存的大小,而不必使用愚蠢的硬件。使用memcache使前端更快\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89但只有当你确实无法从数据库中获得你想要的性能时,因为它需要你对数据一致性的妥协。除非确实需要,否则不要诉诸内存缓存。

\n

  • 完全不同意。通过网络加载行,转换为内部结构,渲染页面。所有昂贵的流程都无法通过更快的数据库来改进。大多数使用任何类型的远程系统加载数据的重要 Web 应用程序都应该默认使用像 Memcached 这样的缓存。这不仅仅是缓存结果集,这只是缓存的一方面。 (6认同)
  • 甚至结果集缓存也非常相关。您可能有一些查询,这些查询必然很慢(例如,聚合整个大表中某些值的标准差),并且每天只需要几次。您可以尝试将数据库扩展到大型硬件上,仅用于这一查询,也可以免费将其放入缓存中。 (3认同)