RDBOC 对象是否通过不同的进程缓存?我想在 mod-perl 中运行它,它会影响一些事情,即使它主要用于不会改变(很多)的事情。
此外,引用 RDBOC 的关系是否应该直观地使用缓存?
RDBOC 对象是否通过不同的进程缓存?我想在 mod-perl 中运行它,它会影响一些事情,即使它主要用于不会改变(很多)的事情。
此外,引用 RDBOC 的关系是否应该直观地使用缓存?
Rose::DB::Object::Cached
在普通旧(非共享)内存中缓存对象。在 mod_perl 下,这意味着每个 apache 进程都有自己的缓存。但是,您可以在服务器启动时缓存您的对象。然后,所有这些缓存的对象都将与每个 apache 子进程共享。这对于您在服务器生命周期内不希望更改的只读对象最有用。
如需更灵活的缓存选项,请查看Rose::DBx::Object::Cached::CHI
.
至于您的第二个问题,Rose::DB::Object::Cached
仅在 和 上读取和写入load()
缓存save()
。大多数关系方法使用管理器查询来获取对象,因此不会从Rose::DB::Object::Cached
缓存中读取。