Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
nginx как основа для творчества
Здравствуйте, nginx-ru.
На многих проектах требуются кэширующие решения с особой,
настраиваемой функциональностью.
Примеры:
1) Хранение сессий, с записью в базу после таймаута.
На сервисе форумов потребовалось при каждом запросе обновлять данные
сессии, а именно - идентификатор страницы (позволяет узнать, где
"находится" пользователь в данный момент).
Через настраиваемый промежуток времени неактивности обращений к
сессии, пользователь должен разлогинится, идет запись в базу времени его
пребывания.
2) Различные write-through кэши
При первом запросе к объекту данных, он загружается из базы,
после - модифицируется при каждом запросе, регулярно с частотой
настраиваемого интервала происходит обработка (чаще всего агрегаты)
накопленных изменений и сброс в постоянное хранилище.
2.а) Поиск по многим ключам, и поиск вообще
При старте на основе данных из базы, в памяти строится кэш
в удобном, определенном спецификой задачи виде, модифицируется,
периодически сбрасывается в базу.
Думаю примеров достаточно:)
Реализация подобных вещей предполагается стандартная - процесс-демон,
с сокетным, а если быть точнее - TCP/UDP интерфейсом.
Внимательно смотрю в сторону nginx как основы.
Почему nginx, а не, скажем, memcached или mcache?
Удобная работа с конфигурацией,
Готовый механизм логов,
Механизм управления процессами,
Наличие реализованных алгоритмов деревьев, управления памятью,
Продуманная модульная структура,
Поддержка различных типов событий на сокетах, (с обходом багов)
Русскоязычный автор и активное сообщество
На данный момент самый главный вопрос:
Правильно ли я понимаю, что выполнение длительной операции на БД
из модуля, будет блокировать воркер?
А вообще, любые предложения, критика для вышеописанных задач
приветствуется!
--
С уважением,
Nickolay mailto:nk@xxxxxxxxxxxxxx
|