Раздел 45 · Python backend: Тарбадель

Сессии, лимиты на Lua и замки

middle-senior~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Ночью на входе в Барахолку перебирали пароли покупателей: сто попыток в секунду на одно имя kelsa, с разных адресов. Ни одна не угадала, но журнал входа за ночь распух на триста тысяч строк, а настоящие покупатели утром ждали ответа по три секунды.

В прошлом уроке Redis помогал отвечать быстрее. Здесь он помогает отказывать: считать попытки входа, хранить сессии и не пускать двух воркеров к одному складу. Все три задачи упираются в одно и то же: проверить и записать надо одним шагом, иначе между проверкой и записью пролезет сосед. В уроке 187 этот шаг делал PostgreSQL одним UPDATE ... WHERE. В Redis его делают скриптом на Lua.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.