2012-02-22 3 views
2

У меня есть приложение, которому необходимо выполнить несколько сетевых запросов, каждый из которых возвращает 100 записей.Обновление существующей записи Memcached

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

Есть ли способ добавить данные в запись Memcached или мне нужно читать и записывать их туда и обратно и комбинировать старые результаты с новыми с помощью моего приложения?

Спасибо!

P.S. Я использую Rails 3.2

+0

Возможно, вы захотите рассмотреть redis. Лично я не использовал его, но я предполагаю, что он допускает такие операции. – rubish

ответ

2

Невозможно добавить что-либо к ключу memcached. Вам нужно будет каждый раз читать и выходить из хранилища.

redis действительно разрешает эту операцию, однако, по мере того, как рубит указывает - у него есть собственный тип списка, который позволяет вам вводить на него новые данные. Обратитесь к redis list documenation за информацией о том, как это сделать.

+0

Спасибо! Но будет ли правильным использовать Redis для данных, которые не обязательно должны быть постоянными? Я использую key: value store только для кэширования. – Fenelon

+0

Данные Redis не обязательно должны сохраняться на диске. Для получения дополнительной информации просмотрите документацию [redis persistence documentation] (http://redis.io/topics/persistence), но если вы абсолютно не хотите, чтобы что-либо сохранялось на диске, вы можете отказаться от сохранения на диске и сохранить все хранилище данных в памяти. – Veraticus

0

Вы можете написать класс, который будет эмулировать список в memcached (что на самом деле то, что я сделал) ... Добавление к записи не является атомной операцией, поэтому оно будет генерировать ошибки, которые будут накапливаться с течением времени (на наименее в memcached). Рядом он будет очень медленным.

Как указано, Redis имеет собственные списки, но его можно эмулировать в любом решении для хранения noSQL/K-V.

Смежные вопросы