2016-03-15 159 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中返回。只要不要忘記刷新緩存,你經常需要。

注意: 「早期優化是萬惡之源」,「服務器比程序員時間便宜」是需要牢記的事情。如果你不需要,不要用真正先進的緩存方法使你的生活複雜化。