0

我正在一个使用 Kohana 3 框架的大型项目中工作,实际上我需要改进它,添加一个缓存系统以减少 MySQL 连接的数量。

我正在考虑开发一个基本(但通用)的模块来生成完整的查询结果缓存,但将表查询结果单独管理到不同的组中。

佩克斯:

缓存组:用户、角色、角色用户等。

每个组包含来自对应表的所有查询结果。因此,如果我想从“用户”获取值,缓存系统会自动将结果添加到缓存系统,但如果我更新“用户”表,“用户”组中的所有键都将被删除。我知道,它不是那么聪明,但它又快又安全(系统也会生成用户列表,结果可能是正确的)。

然后,我的问题是:¿如何在应用程序树中“注入”我的代码?

我首先需要(生成散列键)完整查询(对于某个表-用作组-),以及要存储的该查询的结果。而且,当另一个散列(在该组中)与存储的散列相同时,该值必须从 memcached 中获取。

所以,我需要:表名、查询和结果……我认为可以扩展 Database 类,在 execute() 方法中实现缓存,但我找不到!

我的方式正确吗?execute() 方法在哪里?

4

1 回答 1

0

我构建了一个完成此任务的 Kohana 3 模块,但它必须与查询生成器一起使用。它还使用 Memcache 来缓存查询。它在插入/更新/删除时无效。

这是一个链接:

Kohana Memcache 查询缓存

于 2011-12-05T22:28:56.073 回答