Воскресенье, 22 Декабря 2024, 18:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Хранение данных персонажа
likerДата: Четверг, 21 Марта 2013, 19:56 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Участвую в любительском проекте по разработке браузерной игры, хочу получить некий опыт разработки в этой области. Имеется такой вопрос:
Нужно хранить данные последнего обращения юзера к серверу(пусть будет $last_visit)(и не только эти данные, разумеется), соответственно эти данные нужны нам ПРИ КАЖДОМ обращении к любой странице сайта для просчета ресурсов и тд, где хранить эту переменную?
1. БД - большая нагрузка, т.к. запросов будет и так не мало(10 запросов в минуту на 1 юзера, если 2000 юзеров, то 20000/минута = 333 запроса/сек, ОМГ smile
2. Memcache? Но кэш может быть очищен или устареть
3. Сессии? они у нас хранятся в memcache
4. Отдельный файл? но опять же нагрузка на файловую систему
5. Ваши предложения, подобную тему уже создавал на другом форуме, посмотрю что вы скажете smile жду ответов
lvovandДата: Четверг, 21 Марта 2013, 20:02 | Сообщение # 2
старожил
Сейчас нет на сайте
в таблице хранить и в сессии, сначала смотреть в сессии, если в сессии нет, то смотреть есть ли в таблице, если пользователь обновляет страницу вы же и так инфу о нем берете, взять еще одно числовое поле напряга особого не добавит серверу

Разработка и продвижение сайтов. Дизайн
likerДата: Четверг, 21 Марта 2013, 20:03 | Сообщение # 3
почетный гость
Сейчас нет на сайте
информацию о последнем заходе нельзя хранить в данных типа кэша и сессии в этом и проблема sad
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 про покемонов)

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг