сериализовать большой массив в PHP? - PullRequest
13 голосов
/ 11 августа 2009

Мне любопытно, есть ли ограничение на размер сериализации в PHP. Можно ли сериализовать массив с 5000 ключами и значениями, чтобы он мог быть сохранен в кеш?

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

На одном сервере я предполагаю, что APC будет лучше, чем memcache для этого.

Ответы [ 13 ]

1 голос
/ 11 августа 2009

Я думаю, лучше, чем сериализация, - это функция json_encode . Недостатком является то, что ассоциативные массивы и объекты не различаются, но результат строки меньше и его легче читать человеку, так же для отладки и редактирования.

1 голос
/ 11 августа 2009

Нет, ограничений нет и это:

set_time_limit(0);
ini_set('memory_limit ', -1);

unserialize('s:2000000000:"a";');

- вот почему у вас должен быть safe.mode = On или расширение, например Suhosin, установленное , иначе оно поглотит всю память вашей системы.

0 голосов
/ 03 августа 2013

У меня есть случай, когда unserialize создает исключение для большого сериализованного объекта, размер: 65535 (магическое число: полный бит 16 бит = 65536)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...