Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужны ли сессии для хранения больших массивов?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
_Виталий_
Отправлено: 14 Июля, 2015 - 00:34:44
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Всем привет!
На сайте лежит файл со всякой информацией. При каждом открытии html-страницы этот файл открывается fopen, далее циклом пробегаю по всему файлу и формирую пару десятков массивов, с которыми потом работаю.
Наткнулся на инфу про куки/сессии и решил поработать с сессиями.
Поставил в начале каждой страницы if (isset($_SESSION["переменная1"])). Если переменной нет, то делаю fopen, цикл и запихиваю массивы в $_SESSION. Если переменная есть, то иду дальше, то есть получается, что при переходе со страницы на страницу "таскаю" за собой свои массивы.
Проделал все это в надежде ускорить загрузку страницы, но что-то не пойму. Файл, который fopen открывает, весит около 50 кб. Сессии получаются под 200 кб. Так, на глаз, разницы в скорости загрузки страницы я не вижу. Может в моем случает сессии не нужны?
И еще. Народ пишет, что после закрытия браузера сессии автоматически удаляются. У меня за день их хренова туча накопилась, вручную удалил. Как задать автоудаление?
 
 Top
tuareg
Отправлено: 14 Июля, 2015 - 01:08:30
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Может просто надо почитать про сессии? Это такие же файл ))
 
 Top
LIME
Отправлено: 14 Июля, 2015 - 11:12:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




tuareg эээ...не обязательно....хотя я думаю ты в курсе
_Виталий_ на глаз будет заметно только при высокой нагрузке
Если оно тебе не надо то не надо ....мозг себе насиловать
А вообще сессии тупо проще в использовании...используй
(Добавление)
_Виталий_ пишет:
Народ пишет, что после закрытия браузера сессии автоматически удаляются.
что за народ?
Такие вопросыУлыбка...как будто собеседование прохожуУлыбка
Не сессии удаляются а сессионный токен
Сессии удаляются по крону в последних дебиан совместимых
До того удалялись по рандому от запроса
Что за сервер? На чем?
 
 Top
_Виталий_
Отправлено: 14 Июля, 2015 - 18:49:33
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




tuareg пишет:
Это такие же файл ))

Вот поэтому и спросил здесь, чтобы мои предположения подтвердились. Я ж когда про сессии на php.su почитал, решил, что _session в оперативке сервера сидит пока браузер не будет закрыт. А на самом деле получил не просто файл, а кучу файлов.
 
 Top
LIME
Отправлено: 14 Июля, 2015 - 18:59:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




_Виталий_ пишет:
что _session в оперативке сервера сидит пока браузер не будет закрыт. А на самом деле получил не просто файл, а кучу файлов.
на самом деле так и есть только не в оперативке а в кэше дисковой системы
этот кэш есть в ОС
есть он и в самом диске
короче сложный вопрос и вариативный
но все же стоит переййти на сессии
хотя бы потому что потом узнаешь что для сессий возможны разные хранилища
и в бд ее можно держать и в редисе
а вообще я не понимаю зачем тебе это надо? в смысле быстродействия
сессии тупо удобнее
вот и пользуй
тебе ох как рано думать об оптимизации
(Добавление)
_Виталий_ пишет:
пока браузер не будет закрыт
он перед закрытием по твоему оповещает сервер чтоб тот удалил сессию?
Гыыы)))
ооой
(Добавление)
LIME пишет:
Не сессии удаляются а сессионный токен
 
 Top
_Виталий_
Отправлено: 14 Июля, 2015 - 19:05:19
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




LIME пишет:
что за народ?

народ - те, кто плодит блоги.
LIME пишет:
Не сессии удаляются а сессионный токен

пусть будет так.
для меня на сегодня важно то, что файл был создан и файл должен будет удалиться
LIME пишет:
Что за сервер? На чем?

без понятия, я пока в основах разбираюсь.
с запуском задания по крону, наверное, тоже придется немного ознакомиться, т.к. все тот же народ пишет, что автоматически файлы сессий могут не удаляться.
у меня кстати стоит в php.ini частота gc 1/1000, хотя насколько я понял норма 1/100, а как ее поменять пока не пойму.

(Отредактировано автором: 14 Июля, 2015 - 19:06:45)

 
 Top
esterio
Отправлено: 14 Июля, 2015 - 19:10:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




LIME
Я бы не тсал так утверждать что именно сессии нужны. Вангую что файлик для всех один и тот же. Поетому проще открить файл, сделать с него массив и с этот же массив сериализировать и класть в файл. Как по мне куда проще.
Примерно вот так
PHP:
скопировать код в буфер обмена
  1. if(!file_exists('cache'))
  2. {
  3.     $array = make_array(); // функция которая формирует массив с файла как пример
  4.     file_put_contents('cache', serialize($array));
  5. }
  6. else
  7. {
  8.     $array = unserialize(file_get_contents('cache));
  9. }
  10.  
  11. var_dump($array);
 
 Top
_Виталий_
Отправлено: 14 Июля, 2015 - 19:16:08
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




esterio пишет:
файлик для всех один и тот же


верно.

esterio пишет:
проще открить файл, сделать с него массив и с этот же массив сериализировать и класть в файл


попробую, что это такое, спасибо.
 
 Top
LIME
Отправлено: 14 Июля, 2015 - 19:20:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




_Виталий_ ну вот
видишь ты начал ковырять и понимать
по пунктам пойдем:
_Виталий_ пишет:
народ - те, кто плодит блоги.
именно плодит
гореть им в аду
_Виталий_ пишет:
для меня на сегодня важно то, что файл был создан и файл должен будет удалиться
тебе оно надо?
тебе жалко пары килобайт на серваке?
диски терабайтные сейчас ежели чего
_Виталий_ пишет:
у меня кстати стоит в php.ini частота gc 1/1000, хотя насколько я понял норма 1/100, а как ее поменять пока не пойму.
это не важно
вернее тебя не должно волновать как удаляются сессии
то что ты вычитал про рандомное удаление это уже устарело
раньше происходила чистка по рандому от запроса...теперь по крону(в дебиановских дистрибутивах)
_Виталий_ пишет:
для меня на сегодня важно то, что файл был создан и файл должен будет удалиться
пусть лежит
зачем его удалять?
вернее его можно и нужно удалять
но для этого и существуют нестандартные хранилища сессий...типа в бд и редис
тебя не должно это волновать
пока по крайней мере
когда будет волновать тогда и узнаешь
короче юзай сессии...хороший совет
пусть плодятся файлы...пофиг
хотя иногда бывают баги...наблюдал при использовании сервака на ISP-manager(иноды захламляло)
но ясно что это не твой случай
короче пользуй сессии но контролируй их количество...если скопятся более 10 000 пиши...разберемся
а менее...пофиг))
(Добавление)
esterio ага
и писать код для файла и ловить потенциальные баги
(Добавление)
esterio ну вот зачем ты это написал?
учишь велосипедить?
(Добавление)
esterio взбесил прям!!!
(Добавление)
esterio чем твое решение отличается от классической сессии?
ЧЕМ? кроме костылей на скотче?
(Добавление)
esterio еще не забудь сделать суперглобальный доступ
тоесть какойто класс с статическим доступом
регестри
синглтон
пофиг
и снова лови потенциальные баги
оооох
блин вот лишьбы написать да?
 
 Top
_Виталий_
Отправлено: 14 Июля, 2015 - 19:36:03
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




LIME пишет:
тебе жалко пары килобайт на серваке?
диски терабайтные сейчас ежели чего


вряд ли это мой случай, у меня простой хостинг и файлы сессий скорее всего входят в оплаченный объем хостинга.

LIME пишет:
пусть лежит
зачем его удалять?
вернее его можно и нужно удалять
но для этого и существуют нестандартные хранилища сессий...типа в бд и редис


у меня копятся в папке, которая в php.ini прописана
 
 Top
LIME
Отправлено: 14 Июля, 2015 - 19:38:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




_Виталий_ пишет:
у меня простой хостинг и файлы сессий скорее всего входят в оплаченный объем хостинга.
именно
_Виталий_ пишет:
у меня копятся в папке, которая в php.ini прописана
раз это хостинг то он берет на себя работу с сессиями
и ничего ты в php.ini не пропишешь
короче
перестань херней страдать
и не слушай естерио
он конечно хороший спец но тут сказал как в воду ...
esterio без обид
(Добавление)
_Виталий_ пишет:
простой хостинг и файлы сессий скорее всего входят в оплаченный объем хостинга.
это не занимает выделенный тебе диск если что
 
 Top
esterio
Отправлено: 14 Июля, 2015 - 22:44:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




LIME
Аххх ты уже забанен. Неуспел отписать. Чем же мое решение хуже сессий. Мне например кажется, что зачем каждый раз парсить файл при создании сессий, если можно это сделать раз и забыть.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB