Практикум: проверка состояния Redis не ограничивается PING¶
Нужен работающий Docker. Скрипт создаёт три контейнера redis:7-alpine:
исправный основной узел, основной узел с лимитом памяти ниже текущего потребления
и политикой noeviction, а также реплику только для чтения.
Затем исправный основной узел приостанавливается и возобновляет работу.
Команда выполняется из каталога docs/blog/lab/2026-09-07-redis-health-checks
в клоне репозитория. Практикум использует функции статьи и учебные реализации
из соседнего каталога 2026-09-07-when-should-redis-fail-open, поэтому нужны оба каталога:
Закреплены версии redis-client-kit 0.3.0, redis-py 8.1.0 и testcontainers 4.15.0. Скрипт выводит версию Redis (7.4.11 в проверенном запуске).
На реплике и узле с исчерпанным лимитом памяти проверяется успешный PING при отказе записи.
Проверка библиотеки с write_key выполняет PING, затем SET с TTL 60 секунд;
обратного чтения в ней нет. Практикум отдельно проверяет записанное значение и его TTL.
Функции магазина должны вернуть цену из источника даже при отказе заполнения кеша,
отклонить вход и оплату и не выполнить списание при отказе записи.
После снятия лимита памяти и возобновления Redis состояние должно восстановиться
с прежними клиентами. Результаты проверяются утверждениями; успешный запуск
завершается строкой PASS: Redis health scenarios.