有没有人一起加入SQLAlchemy和Memcached,以便SQLAlchemy返回的结果在Memcached中缓存?目前我不知道如何自己实施,我完全迷失并寻求帮助。
谢谢,Boda Cydo。
答案 0 :(得分:8)
请参阅SQLAlchemy源代码中的beaker caching example,了解如何将缓存集成到SQLAlchemy应用程序中。 Beaker可以使用Memcached作为缓存存储。
答案 1 :(得分:-3)
Memcache和关系数据库是两个独立的东西,根本不能以相同的方式工作。 Memcache是一个简单的查找存储桶,可用于转储像部分网页这样的blob,它们在许多请求之间共享,并且需要很长时间才能生成(因为当您无法合理地优化/非规范化数据库模式以使其快速到达时)产生)。
使用memcache就像一个完整的后端数据存储并不是一个好主意,并且提供一个转发到memcache或数据库的SQL接口是没有用的:你会得到两个世界中最糟糕的,没有memcache的简单/速度或关系数据库的ACID合规性。
您的数据库服务器已有缓存。如果您希望它缓存更多,请尽可能高地调整该缓存的大小,而不必使用愚蠢的硬件。使用memcache可以使前端更快 - 但只有当你真的无法从数据库中获得所需的性能时才会这样做,因为它要求你对数据的一致性做出妥协。在你真的需要之前不要求助于memcache。