Кешируется ли Rose :: DB :: Object :: Cached память через разные процессы? - PullRequest
1 голос
/ 11 февраля 2010

Кешируются ли объекты RDBOC через разные процессы? Я предпочитаю запускать его в mod-perl, и он будет влиять на вещи, даже если он будет в основном использоваться на вещах, которые не меняются (сильно).

Кроме того, используют ли отношения, ссылающиеся на RDBOC, кеш, когда он должен интуитивно понятен?

1 Ответ

1 голос
/ 12 февраля 2010

Rose::DB::Object::Cached кэширует объекты в старой (не разделяемой) памяти. В mod_perl это означает, что каждый процесс apache имеет свой собственный кеш. Однако вы можете кэшировать ваши объекты при запуске сервера. Все эти кэшированные объекты затем будут доступны каждому дочернему процессу apache. Это наиболее полезно для объектов только для чтения, которые вы никогда не ожидаете изменить в течение срока службы сервера.

Для более гибких опций кэширования, посмотрите Rose::DBx::Object::Cached::CHI.

Что касается вашего второго вопроса, Rose::DB::Object::Cached только читает и записывает в кэш на load() и save(). Большинство методов отношений используют Manager запросов для получения объектов и поэтому не будут читать из кэша Rose::DB::Object::Cached.

...