@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
Просто люблю качественно работать
если у вас меньше тысячи юзеров онлайн проходят тест в один момент то вообще без разницы на любом варианте должно летать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽