@corol

Производительность сайта по сдаче тестирования?

Здравствуйте. Делаю сайт по прохождению тестирования. Пользователь заходит на сайт выбирает категорию тестов и начинает прохождение. В каждой категории до ста с лишним вопросов. Как лучше в плане производительности?:

1. Выбирать все тесты и ложить их в некое хранилище типа сессий (или какого-нибудь redis) после выбора категории (т.е. перед началом самого тестирования) и затем уже выдавать каждый тест (вопрос) оттуда или же
2. в первом варианте нет смысла и можно вытаскивать каждый тест из БД (т.е. каждый вопрос тестирования это запрос к БД)

Уже делал такой сайт до этого, использовал первый вариант, но с сессиями периодически выходят какие-то ошибки, то сессионная переменная не удалится, то еще что. Если все-таки первый вариант является более правильным, то насколько redis подходит для таких нужд или какое бы хранилище посоветовали бы вы?

Спасибо.
  • Вопрос задан
  • 2723 просмотра
Пригласить эксперта
Ответы на вопрос 6
TheCreator
@TheCreator
Бездельник
Зависит от количества пользователей, находящихся одновременно на сайте, если это число больше нескольких тысяч (единовременно, не в сутки!) - можно заморачиваться с вариантами, похожими на первый. Иначе второй вариант, базе всё равно.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Смотря на какую нагрузку вы рассчитываете. Для ~0,5 rps вам кэш даже может не понадобится.
redis - чаще всего используется как кэш хранилище, и pub/sub. Как БД его использовать - не самая лучшая идея, хотя бы потому что:
redis.io/commands/keys
Warning: consider KEYS as a command that should only be used in production environments with extreme care. It may ruin performance when it is executed against large databases.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Ваш сайт будет спокойно работать и в обычном режиме, хоть с 300 одновременными пользователями проходящими тест. Не парьтесь.
Ответ написан
Комментировать
He11ion
@He11ion
PHP-monkey
Смысла нету в кэшировании, но я бы на Вашем месте просто потренировался использовать кэширование - будет полезно в будущем.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
если у вас меньше тысячи юзеров онлайн проходят тест в один момент то вообще без разницы на любом варианте должно летать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы