Rose :: DB :: Object :: Cached内存是通过不同的进程缓存的吗?

时间:2010-02-11 16:02:30

标签: perl rose-db-object

RDBOC对象是否通过不同的进程缓存?我很想在mod-perl中运行它,它会影响到某些东西,即使它主要用于那些不会改变的东西(很多)。

另外,引用RDBOC的关系是否应该直观地使用缓存?

1 个答案:

答案 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缓存中读取。