2011-10-07 57 views
0

我在一個使用Kohana 3框架的大型項目中工作,實際上我需要改進它,添加一個緩存系統以減少MySQL連接的數量。Kohana 3 - 如何使用memcached獲取緩存查詢結果?

我在開發一個基本的(但一般)模塊來生成一個完整的查詢結果緩存但單獨管理表查詢結果到不同的組。

Pex的:

緩存組:用戶,角色,roles_users等

每個組包含來自通訊員表中的所有查詢結果。因此,如果我想從'用戶'中獲取值,緩存系統會自動將結果添加到緩存系統,但是如果我更新'用戶'表,'用戶'組中的所有密鑰都將被刪除。我知道,它不是很聰明,但它快速和安全(系統也生成用戶列表,結果可能是正確的)。

然後,我的問題是:¿我該如何在應用程序樹中「注入」我的代碼?

我首先需要(生成一個哈希鍵)完整的查詢(對於某個表 - 用作組),以及該查詢的結果存儲。而且,當另一個散列(在該組中)與存儲散列相同時,該值必須從memcached中獲取。因此,我需要:表名,查詢和結果......我認爲可以擴展Database類,在execute()方法中實現緩存,但是我找不到它!

我以正確的方式嗎? execute()方法在哪裏?

回答

0

我構建了一個完成此操作的Kohana 3模塊,但它必須與查詢生成器一起使用。它還使用Memcache來緩存查詢。它在插入/更新/刪除時無效。

這裏有一個鏈接:

Kohana Memcache Query Caching

+0

好吧,我會看到你的作品。謝謝。 –