Есть скрипт небольшого сервера, который распределяет данные между клиентами. Скрипт работает с параметрами set_time_limit(0);
и ignore_user_abort(true);
. В этом скрипте есть массив $Clients, структура - Array('ClientName'=>'...', 'ClientData'=>'...')
. Проблема в том, что при обращении к скрипту каждого клиента, массив создаётся заново, а должен быть наполнен информацией о других клиентах, которые обращались к скрипту. Запросы к скрипту идут постоянно AJAX-ом от каждого авторизовавшегося клиента с некоторым интервалом (от 2 до 4 секунд) и, соответственно, информация в массиве должна обновляться.
Учитывая объём, количество и частоту сообщений, использовать базу данных крайне не эффективно, так как важна скорость работы, тем более база и так нагружена другим функционалом. В связи с этим прошу совета, как можно хранить в скрипте постоянный массив(ы), который бы не пересоздавался при каждом клиентском обращении?
Можно использовать APC, можно скидывать в файл с теми же json_encode
/json_decode
(по идее, при частых чтении-перезаписи он всё равно будет браться из кеша файловой системы), можно вообще посмотреть в сторону, например, Node.JS вместо PHP.
Если у вас основная информация о клиентах находится в базе, чтобы не придумывать дополнительный велосипед, можете попробовать хранить информацию о логах клиентов в таблице с типом MEMORY. В отличие от обычных таблиц, данные хранятся не на диске, а в оперативной памяти, и доступ к ним (чтение/запись) осуществляется очень быстро. По сути вы работаете с оперативкой. Это самое быстрое решение.
Другой вариант, это, как писали выше, использовать инструменты для кеширования - APC, memcached. Но они также, как и MEMORY, работают с оперативкой.
Здравствуйте, У меня такая проблемаСайт на русском но путь в меню показывается так: Home/текст/текст
Всем приветСтолкнулся с следующей проблемой, после обновления ОС на макбуке вебсервер (изначально MAMP) при работе перестал отображать ошибки,...
Нужно сдедать ресайз image/x-ms-bmp файлаНо функции imagecreatefrombmp нет