Содержание курса
1. Введение
5 уроков
21
19
0м
0
Открытый
1.1
Что такое Redis?
↗
7
7
-
0
Открытый
1.2
Зачем нужны Lua-скрипты в Redis?
↗
9
9
-
0
Открытый
1.3
Преимущества Lua-скриптов для атомарных операций и сложной логик
↗
3
3
-
0
Закрытый
1.4
Квест по мотивам реальной работы программистов — 1
↗
2
0
-
0
Закрытый
1.5
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
2. Основы Lua
5 уроков
20
20
6м
0
Открытый
2.1
Краткий обзор языка Lua (типизация, базовые конструкции, функции
↗
10
10
3м 14с
0
Открытый
2.2
Установка и запуск Lua интерпретатора (для практики)
↗
10
10
2м 28с
0
Закрытый
2.3
Как писать и тестировать простые Lua-скрипты
↗
0
0
-
0
Закрытый
2.4
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
2.5
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
3. Введение в Lua-скрипты в Redis
6 уроков
15
15
3м
0
Открытый
3.1
Как работает Lua в Redis: sandbox, контекст исполнения
↗
15
15
3м 24с
0
Закрытый
3.2
Основные команды для запуска скриптов: EVAL, EVALSHA
↗
0
0
-
0
Закрытый
3.3
Аргументы в скриптах: KEYS и ARGV
↗
0
0
-
0
Закрытый
3.4
Особенности среды Redis Lua (нет доступа к ОС, только Redis API)
↗
0
0
-
0
Закрытый
3.5
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
3.6
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
4. Redis команды в Lua
5 уроков
1
1
0м
0
Закрытый
4.1
Основные команды Redis, доступные в Lua (redis.call, redis.pcall
↗
1
1
-
0
Закрытый
4.2
Возврат значений из Lua в Redis
↗
0
0
-
0
Закрытый
4.3
Обработка ошибок в Lua-скриптах
↗
0
0
-
0
Закрытый
4.4
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
4.5
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
5. Паттерны использования Lua-скриптов в Redis
7 уроков
0
0
0м
0
Закрытый
5.1
Атомарные инкременты и проверка значений
↗
0
0
-
0
Закрытый
5.2
Установка TTL вместе с INCR
↗
0
0
-
0
Закрытый
5.3
Работа с множеством ключей (atomic multi-key operations)
↗
0
0
-
0
Закрытый
5.4
Использование Lua-скриптов для реализации rate limiting
↗
0
0
-
0
Закрытый
5.5
Примеры: ограничение частоты, счётчики, блокировки
↗
0
0
-
0
Закрытый
5.6
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
5.7
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
6. Практика — реализация rate limiting на Lua
6 уроков
0
0
0м
0
Закрытый
6.1
Разбор Lua-скрипта для fixed window rate limiting
↗
0
0
-
0
Закрытый
6.2
Реализация token bucket алгоритма в Lua
↗
0
0
-
0
Закрытый
6.3
Тестирование скриптов с помощью redis-cli
↗
0
0
-
0
Закрытый
6.4
Встраивание скриптов в приложение на Go/Python/Node.js
↗
0
0
-
0
Закрытый
6.5
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
6.6
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
7. Оптимизация и безопасность Lua-скриптов
6 уроков
0
0
0м
0
Закрытый
7.1
Оптимизация производительности
↗
0
0
-
0
Закрытый
7.2
Ограничения времени исполнения скриптов в Redis
↗
0
0
-
0
Закрытый
7.3
Безопасность: sandbox и предотвращение DoS-атак
↗
0
0
-
0
Закрытый
7.4
Работа с большими скриптами (поддержка EVALSHA)
↗
0
0
-
0
Закрытый
7.5
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
7.6
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
8. Продвинутые темы и интеграции
6 уроков
0
0
0м
0
Закрытый
8.1
Использование Redis Streams с Lua
↗
0
0
-
0
Закрытый
8.2
Транзакции и Lua-скрипты
↗
0
0
-
0
Закрытый
8.3
Мониторинг и логирование Lua-скриптов в Redis
↗
0
0
-
0
Закрытый
8.4
Кейсы из реальной жизни
↗
0
0
-
0
Закрытый
8.5
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
8.6
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
9. Итоговый проект
5 уроков
1
0
0м
0
Закрытый
9.1
Разработать собственный Lua-скрипт для Redis
↗
0
0
-
0
Закрытый
9.2
Интегрировать в выбранное приложение
↗
0
0
-
0
Закрытый
9.3
Написать тесты и документацию
↗
0
0
-
0
Закрытый
9.4
Квест по мотивам реальной работы программистов — 1
↗
1
0
-
0
Закрытый
9.5
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0
10. Бонус. Наиболее часто встречающиеся Lua-скрипты для Redis
9 уроков
8
7
0м
0
Закрытый
10.1
Rate Limiting (ограничение запросов)
↗
1
1
-
0
Закрытый
10.2
Sliding Window
↗
1
1
-
0
Закрытый
10.3
Distributed Lock
↗
1
1
-
0
Закрытый
10.4
Счетчики с TTL
↗
1
1
-
0
Закрытый
10.5
Очереди (Queues)
↗
1
1
-
0
Закрытый
10.6
Сессии и TTL
↗
1
1
-
0
Закрытый
10.7
Атомарные обновления (Compare-And-Set)
↗
1
1
-
0
Закрытый
10.8
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
10.9
Квест по мотивам реальной работы программистов — 2
↗
1
0
-
0
11. Бонус. Полезные приёмы и рекомендации
6 уроков
0
0
0м
0
Закрытый
11.1
Всегда проверяйте ошибки при Run в Go
↗
0
0
-
0
Закрытый
11.2
Не используйте KEYS * в продакшене — лучше использовать SCAN
↗
0
0
-
0
Закрытый
11.3
Хранение Lua-скриптов в Go
↗
0
0
-
0
Закрытый
11.4
Скрипты атомарны — нет риска гонки данных
↗
0
0
-
0
Закрытый
11.5
Квест по мотивам реальной работы программистов — 1
↗
0
0
-
0
Закрытый
11.6
Квест по мотивам реальной работы программистов — 2
↗
0
0
-
0