Что лучший способ состоит в том, чтобы хранить объект ActiveRecord в memcached?

В настоящее время существует две проблемы с тем, чтобы хранить объекты ActiveRecord в memcached.

  1. Неопределенная проблема Класса/Модуля (поиск Google). Из того, что я читал, это - все еще ошибка, для которой ни у кого нет очень хорошего решения. cache_fu плагин имеет, вероятно, лучшее решение для этого, перенося получать вызов в блоке, который пытается зафиксировать эту ошибку, анализирует сообщение и попытки загрузить неопределенный класс/модуль.

  2. Печально известный билет № 1339 ЛЮФТГАНЗЫ (Билет ЛЮФТГАНЗЫ). Эта ошибка только произойдет, когда у Вас будет набор cache_classes ко ЛЖИ (разработка, тест).

После поиска с помощью Google в течение многих недель я все еще не нашел хорошую технику для хранения экземпляров AR в memcached, не имея необходимость заниматься этими 2 упомянутыми выше проблемами.

Идея, которую я не попробовал еще, удаляет атрибуты из экземпляра как строки (как AR получает их от DB, прежде чем это сделает свое преобразование типа), храня тех, которые в memcached и затем на извлечении от кэша, так или иначе инстанцируют объекта AR, использующего эти значения. Действительно ли это возможно? Если так, что лучший способ состоит в том, чтобы сделать это?

Я просто ищу способы, которыми другие разработчики направляющих занялись этой проблемой.

7
задан Jose Fernandez 6 March 2010 в 20:12
поделиться

1 ответ

В наших проектах мы храним объект как XML.

cache.write(user.cache_key, user.to_xml) # write to cache
User.new(Hash.from_xml(cache.read(cache_key))) # reach from cache xml

Сериализация/де-сериализация XML требует некоторых дополнительных затрат. Но это позволило нам разделить кэш между приложениями, не использующими Ruby.

3
ответ дан 7 December 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: