Настройка Redis и кэширования¶
Для повышения производительности и снижения нагрузки на платформу CodeScoring поддерживается кэширование результатов работы политик (вердиктов сервиса Judge). Для работы кэширования требуется подключение к Redis.
Настройки Redis и кэширования
spring:
data:
redis:
host: localhost
port: 6379
database: 0 # Номер базы данных (опционально)
password: password # Опционально
timeout: 2000ms
cache:
judge:
enabled: true # Включение кэширования (по умолчанию false)
ttl: 24h # Время жизни записи в кэше
refresh-after: 30m # Время, после которого запись считается устаревшей и требует обновления (но все еще может быть отдана из кэша)
proactive-refresh-enabled: true # Включение проактивного (фонового) обновления кэша
proactive-refresh-interval: 2h # Интервал запуска фонового обновления
key-prefix: "cs:judge:" # Префикс для ключей в Redis
Особенности продления времени жизни (TTL) в кэше
Проактивное обновление не продлевает TTL (время жизни) записи в кэше. TTL продлевается только при чтении данных из кэша реальными запросами пользователей. Это позволяет автоматически удалять из Redis редко запрашиваемые пакеты и хранить только востребованные данные.
Swagger UI¶
OSA Proxy предоставляет Swagger UI для просмотра документации API и управления кэшем.
- URL:
http://<osa-proxy-host>:<port>/api/swagger - Доступные операции:
- Очистка кэша по PURL
- Очистка кэша по типу пакета