Хранение данных персонажа
|
|
liker | Дата: Четверг, 21 Марта 2013, 19:56 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Участвую в любительском проекте по разработке браузерной игры, хочу получить некий опыт разработки в этой области. Имеется такой вопрос: Нужно хранить данные последнего обращения юзера к серверу(пусть будет $last_visit)(и не только эти данные, разумеется), соответственно эти данные нужны нам ПРИ КАЖДОМ обращении к любой странице сайта для просчета ресурсов и тд, где хранить эту переменную? 1. БД - большая нагрузка, т.к. запросов будет и так не мало(10 запросов в минуту на 1 юзера, если 2000 юзеров, то 20000/минута = 333 запроса/сек, ОМГ 2. Memcache? Но кэш может быть очищен или устареть 3. Сессии? они у нас хранятся в memcache 4. Отдельный файл? но опять же нагрузка на файловую систему 5. Ваши предложения, подобную тему уже создавал на другом форуме, посмотрю что вы скажете жду ответов
|
|
| |
lvovand | Дата: Четверг, 21 Марта 2013, 20:02 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| в таблице хранить и в сессии, сначала смотреть в сессии, если в сессии нет, то смотреть есть ли в таблице, если пользователь обновляет страницу вы же и так инфу о нем берете, взять еще одно числовое поле напряга особого не добавит серверу
Разработка и продвижение сайтов. Дизайн
|
|
| |
liker | Дата: Четверг, 21 Марта 2013, 20:03 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| информацию о последнем заходе нельзя хранить в данных типа кэша и сессии в этом и проблема
|
|
| |
lvovand | Дата: Четверг, 21 Марта 2013, 20:06 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| ну вы же храните логин пользователя где-то, в чем сложность добавить еще одну переменную
Разработка и продвижение сайтов. Дизайн
|
|
| |
liker | Дата: Четверг, 21 Марта 2013, 20:08 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| логин и пароль при каждом обращении к странице мы не смотрим, а время последнего захода нам нужно постоянно обновлять
|
|
| |
Vinchensoo | Дата: Четверг, 21 Марта 2013, 20:08 | Сообщение # 6 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Напишите модуль на Node.js и храните в оперативной памяти. Вообще- мне кажется, вопрос дурацкий. Когда у вас будет 2000 юзеров, вас будет мало заботить необходимая мощность серверов)
|
|
| |
Tiendil | Дата: Четверг, 21 Марта 2013, 21:09 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Хранить информацию о сессии в базе — это стандартная практика, и 1 запрос в базу по ключу — это не то, что будет вас волновать в плане производительности.
Рекомендую для начала базой и ограничится.
Когда появятся нагрузки, делаете так: - при изменении данных, запись идёт и в базу и в кэш - при чтении, сначала читаем из кэша и только если там данных нет, то из базы
P.S. Не пишите все велосипеды сами, нормальные фреймворки умеют это автоматически делать и сразу с кучей проверок на секьюрность и прочее. Рельсы и Джанго точно умеют, уверен на php тоже аналогов куча.
Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё :-) )
Текущий проект: the-tale.org - indie mmozpg
|
|
| |
Riolu | Дата: Понедельник, 01 Апреля 2013, 07:37 | Сообщение # 8 |
почетный гость
Сейчас нет на сайте
| Evercookie ну или БД если использовать deflate и gzip нагрузка уменьшится!
Рoke-x (ММОRPG про покемонов)
|
|
| |