Консультация № 161907
03.03.2009, 15:12
0.00 руб.
0 6 2
Добрый день.

При открытии страницы page1.php данные из большого файла
передаются в массив. Массив большой и необходимо некоторое
время для его формирования. Другие клиенты сайта так же будут
использовать этот массива при открытии страницы page1.php.

Подскажите пожалуйста код который позволял бы совместно,
без сбоев, нескольким пользователям, пользоваться этим массивом.
Как долго созданный массив находится в оперативной памяти сервера?
Есть ли в сети по этой теме статьи?

Большое спасибо.

Обсуждение

Неизвестный
03.03.2009, 15:22
общий
Данные в массиве сохраняются только во время работы данного сценария, по завершении которого все созданные переменные уничтожаются.
Покажите кусок файла с данныими и структуру массива в который они передаются, а я посмотрю, что можно сделать в данной ситуации.
Неизвестный
03.03.2009, 15:33
общий
А в чем конкретно проблема? Файл должен редактироваться? Тогда только блокировки, но параллельную работу организовать проблематично.
Если вопрос в параллельном считывании, то вроде как друг другу мешать не должны.
Если Вы про скорость работы, то надо смотреть на формат файла. Обычно используют serialize() или функции работы с JSON.
Чтобы не считывать файл при переходе со страницы на страницу, можно файл хранить в сессии.
Чтобы данные быстро считывались, можно использовать что-нибудь типа memcached (но тут все зависит от того, как часто будет файл редактироваться).
Неизвестный
03.03.2009, 17:00
общий
это ответ
Здравствуйте, BakoTair!
Идеальным вариантом для совместной работы с массивами данных является по определению СУБД - если нет возможности использовать MySQL или PostgreSQL, попытайтесь использовать DBA или Flat files - nтам совместный доступ решен на уровне ПХП
Неизвестный
03.03.2009, 23:49
общий
это ответ
Здравствуйте, BakoTair!

Каждый сценарий запускается в своём собственном потоке и со своей собственной памятью, а значит доступа к массиву в чужом блоке памяти не будет!!!

Для такого рода задач пользуются базами данных.
Неизвестный
04.03.2009, 14:42
общий

Данный сайт пока в стадии проектирования, кода еще нет.
Пока ищу оптимальный вариант для этого проекта.
Хотел ускорить работу сайта за счет использования файлов,
вместо СУБД, но похоже придется отказаться от этой идеи.
Всем кто помог и пытался помочь – большое спасибо.
Неизвестный
04.03.2009, 14:53
общий
Обычная схема - данные в БД, но при этом кэшируются (в файлы или память), таким образом вы:
1. Имеете некоторый фундамент для хранения данных (СУБД)
2. Ускоряете работу (кэш работает быстрее)
3. Не привязываетесь к конкретному механизму кэширования (теоретически конечно).
Форма ответа