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

Рейтинг: 0Ответов: 1Опубликовано: 21.02.2015

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

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

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

Спасибо.

Ответы

▲ 1

Можно использовать key-value хранилище, или же сделать memory табличку в базе, тогда все сведется к проталкиванию данных через локальный сокет, что быстрее локальных сессий.

В случае key-value хранилища главное выбрать правильное формирование key, как вариант x-y-z, где x - id категории, y - id теста, z - id вопроса.

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

я использовал memcached, мне понравилось, узким местом стал канал, а не мощности сервера