memcache без сериализации массива?

sunyang

Новичок
Выяснилось, что если записать в memcache массив этак 4 мегабайта, то на нагруженных проектах (4000 посещалка) скорость восстановления из memcache сопоставима со скоростью запроса в базу, а именно доходит до 2 секунд порой.

т.е.
PHP:
memcache::get('BIG_ARRAY');
выполняется 1 - 2 секунды в зависимости от посещалки.

Я думаю времени много уходит именно на десериализацию этого массива, ведь он там хранится в сериализованном виде.

Можно как-то зарезервировать память чисто для массива, тобишь для объема данных?
Или может можно хранить массив в бинарных данных, чтобы не тратить время на десериализацию ?

Есть какие-то методы хранения больших данных (массивов) в оперативке без их преобразования?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Разбей уже массив на части, советовали ведь. Нет, ты будешь искать метод как бы помучиться, зачем?

PS: 4000 нагруженный проект?
 

keltanas

marty cats
sunyang
Рассказал бы, какие данные и зачем хочешь так хранить? А то насоветовать можно что угодно, но не факт, что тебе подойдет.

И как уже советовали: серриализуй с помощью php а записывай уже строку. И замерь, что сколько время занимает?
 
Последнее редактирование:

MiksIr

miksir@home:~$
Нет, без сериализации не получится. Можно попробовать другие сериализаторы. Например, igbinary или хотя бы json_*
 

hell0w0rd

Продвинутый новичок
Да что никто не спрашивает что в массиве? Что это такое, что требуется аж 4мб данных для генерации одного ответа? Для сравнения в utf8 вся война и мир txt 5.5 мб весят
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Да что никто не спрашивает что в массиве?
Да кучу раз спрашивали, он игнорит.

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

Breeze

goshogun
Команда форума
Партнер клуба
сопоставима со скоростью запроса в базу, а именно доходит до 2 секунд порой
какие медленные запросы, наверное базу надо менять, там способы хранения неправильные
 
Сверху