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