Простые ограничения, которые вы, вероятно, увидите в memcache, являются ключом и
ограничения по размеру Ключи ограничены 250 символами. Сохраненные данные
не может превышать 1 мегабайт, так как это самый большой типичный
Размер плиты. "
FAQ теперь был пересмотрен, и теперь есть два отдельных вопроса, охватывающих это:
Максимальный размер ключа составляет 250 символов. Обратите внимание, что это значение будет
меньше, если вы используете клиентские "префиксы" или аналогичные функции, так как
Префикс прикреплен к передней части оригинального ключа. Более короткие ключи
как правило, лучше, поскольку они экономят память и используют меньшую пропускную способность.
Ааа, это популярный вопрос!
Краткий ответ: из-за того, как работает алгоритм распределителя памяти.
Длинный ответ: механизм хранения памяти Memcached (который будет
подключаемый / настраиваемый в будущем ...), использует подход slabs к памяти
управление. Память разбита на куски кусков разных размеров,
начиная с минимального числа и восходящего факториала до
максимально возможное значение.
Скажите, что минимальное значение составляет 400 байтов, а максимальное значение равно 1
мегабайт, а факториал равен 1,20:
плита 1 - 400 байт плита 2 - 480 байт плита 3 - 576 байт ... и т. Д.
Чем больше плита, тем больше зазор между ней и
предыдущая плита. Таким образом, чем больше максимальное значение, тем менее эффективно
память для хранения есть. Memcached также должен предварительно выделить память для
каждая существующая плита, поэтому установите меньший факториал с большим
Максимальное значение потребует еще больше накладных расходов.
Есть другая причина, почему вы не захотите этого делать ... Если мы
говорим о веб-странице, и вы пытаетесь сохранить / загрузить значения
такой большой, вы, вероятно, делаете что-то не так. При таком размере это будет
занять заметное количество времени для загрузки и распаковки структуры данных
в память, и ваш сайт, вероятно, не будет работать очень хорошо.
Если вы действительно хотите хранить элементы размером более 1 МБ, вы можете
перекомпилируйте memcached с отредактированным значением slabs.c:POWER_BLOCK
или используйте
неэффективный malloc / свободный бэкэнд. Другие предложения включают в себя
база данных, MogileFS и т. д.