Из того, что я прочитал, вы не можете хранить значения или данные по 1 Мб за один раз с помощью memcached. Если это так, есть ли способ узнать размер массива перед отправкой его в memcached?PHP Как узнать размер массива для memcached
ответ
Memcache является магазином ключа/значения, и, следовательно, не делает " знать 'подробнее «комплекс» объектов. То, что делает модуль, является сериализацией значения &, которое представляет собой строку. Итак, общий размер = strlen(serialize($value));
Обратите внимание, что вы хотите non-overloaded version of strlen
!
Спасибо, Wrikken! Я никогда не знал о «перегрузке функций», что такое pro/con использовать перегруженные версии этих функций? – user1448020
Перегруженные методы полезны для строк utf8. Дело в том, что он хранит каждого персонажа в 3 раза больше пространства, чем классический уровень. Просто попробуйте этот фрагмент: 'var_export (strlen ('ï'). '! ==' .mb_strlen ('ï'));'. Memcache не использует эти функции mb_ * для их использования, даст вам ложный результат;) – korko
Или вы пытаетесь сложным путем strlen(serialize($array));
Или вы пытаетесь ростейшей
$before = memory_get_usage();
$myarray = array(<content>);
$size = memory_get_usage() - $before;
не мог думать ни о каком другом способе жаль
И что произойдет, если GC происходит между вызовами 'memory_get_usage()'? – hafichuk
Спасибо за подсказку korko, это полезный фрагмент, о котором нужно знать, но если memcached хранит данные как сериализованную строку, и учитывая, что memcached-сервер может находиться на внешней машине, я думаю, что strlen (serialize ($ array)); метод лучше для того, что я пытаюсь достичь. – user1448020
hafichuk, что означает GC? – user1448020
Это не отвечает на ваш вопрос напрямую, однако при необходимости вы можете изменить предел 1 МБ на нечто большее.
См: http://linux.die.net/man/1/memcached
-I Override по умолчанию размер каждой страницы плиты. Значение по умолчанию - 1mb. Значение по умолчанию - 1 м, минимальное - 1 к, максимальное - 128 м. Регулировка этого значения изменяет лимит размера элемента. Остерегайтесь, что это также увеличивает количество плиток (используйте -v для просмотра) и использование избыточной памяти memcached.
Вы также можете включить сжатие, чтобы уменьшить размер значения. См.: http://ca.php.net/manual/en/memcache.setcompressthreshold.php
- 1. Как узнать размер массива NSData?
- 2. PHP Memcached строка размер превышает
- 3. Как узнать размер этого массива
- 4. Memcached для PHP 5.3
- 5. Как узнать размер массива в функции?
- 6. PHP: размер измерения в килобайтах объекта/массива?
- 7. Модуль Memcached PHP: как узнать, не удалось ли соединение?
- 8. Memcached допустимый размер памяти исчерпаны
- 9. Как узнать, где memcached хранит кешированные данные?
- 10. PHP memcached или Nginx memcached
- 11. php, memcached, двоичный протокол
- 12. Как узнать, когда создан элемент кэша memcached?
- 13. Размер кэша/памяти, рекомендуемый для memcached?
- 14. как установка PHP-PECL-Memcached
- 15. Как узнать конец массива int *?
- 16. PHP - размер массива возвращает 1?
- 17. Как перезапустить memcached из PHP
- 18. PHP Memcached вопрос
- 19. PHP: tmpfs vs memcached
- 20. PHP размер данных ПОЛУЧИТЬ массива
- 21. Результат обновления PHP memcached
- 22. PHP Memcached ошибки
- 23. Как узнать размер (в байтах) массива символов, переданный функции?
- 24. Как узнать размер массива после передачи его функции
- 25. Как узнать размер массива, переданного от C++ DLL в C#
- 26. PHP Active Record Memcached
- 27. В PHP, Memcached (родная библиотека) такая же, как Memcached?
- 28. Как изменить размер массива php $ _POST?
- 29. PHP размер элемента массива ограничен
- 30. Установить php-pecl-memcached
Что вы подразумеваете под размером массива? – ajreal
Я предполагаю, что op просто означает «размер массива» ... потому что в этом контексте размер файла не имеет смысла. – Wrikken
какой уровень сжатия вы использовали? – ajreal