Если ваш набор результатов всегда будет меньше 1 МБ, тогда можно сохранить весь набор результатов. В противном случае (если ваш результат может быть больше 1 МБ), вам придется найти другое решение. Если сохранение каждой строки в memcache работает для вас, то это, вероятно, хорошее решение.
Предел размера в 1 МБ для значения - это жесткий предел, закодированный в memcache. Единственный выход - изменить ограничение в исходном коде и перекомпилировать memcache.
См. http://groups.google.com/group/memcached/browse_thread/thread/d32434ce77131e48 для обсуждения.
(Примечание: все это предполагает, что возможно сериализовать ваши результаты в строку; если вы не можете этого сделать, то вы также не можете хранить отдельные строки, потому что массив не является ограничивающим фактором возможность сериализации.)
Вот пост, в котором обсуждается Сериализация структур данных в C