2016-03-15 148 views
0

如何缓存用Symfony构建的API响应?用Symfony2缓存API缓存

我开始深入研究FosCacheBundle和SymfonyHttpCache,但我不确定我的用例。

您只能通过头中的令牌访问API,并且每个用户在响应中针对调用的同一个URL(以及相同的GET参数)获取相同的数据。

我想对我的每一个URL(包括get参数) 并且还缓存条目,是有可能的请求是由我的缓存系统处理之前重新安排我的GET参数(从而使系统不创建“URL?foo = bar & foz = baz”和“URL?foz = baz & foo = bar”的多个缓存条目返回相同的数据)

回答

1

那么有多种方式。

但最简单的是这样的:

如果最大的问题不仅仅是缓存在内存缓存编译的结果或类似将很长的路要走数据库访问。另外,这种方式你坚持你已经工作的认证。

在您当前的控制器操作中,在验证之后和有效负载创建之前,检查memchache中是否存在条目。如果不是,则构建有效负载并将其保存到memcache中,然后将其返回。当下一个请求出现时,将不会有数据库访问,因为它将从memcache中返回。只要不要忘记刷新缓存,你经常需要。

注意: “早期优化是万恶之源”,“服务器比程序员时间便宜”是需要牢记的事情。如果你不需要,不要用真正先进的缓存方法使你的生活复杂化。