Перейти к содержанию

Настройка Redis и кэширования

OSA Proxy Go поддерживает Redis-кэш вердиктов Judge, чтобы ускорять повторные запросы и снижать нагрузку на CodeScoring. Кэш выключен по умолчанию.

cache:
  judge:
    enabled: true
    ttl: 24h
    refresh-after: 30m
    proactive-refresh-enabled: false
    proactive-refresh-interval: 2h
    proactive-refresh-workers: 10
    key-prefix: "cs:judge:"
  redis:
    address: redis:6379
    password: ""
    db: 0

Параметры

Параметр Назначение
cache.judge.enabled Включает Redis-кэш результатов проверки Judge.
cache.judge.ttl Время жизни записи кэша. По умолчанию 24h.
cache.judge.refresh-after Возраст записи, после которого ее можно обновлять в фоне. По умолчанию 30m.
cache.judge.proactive-refresh-enabled Включает периодическое фоновое обновление устаревающих записей. По умолчанию false.
cache.judge.proactive-refresh-interval Период фонового обновления. По умолчанию 2h.
cache.judge.proactive-refresh-workers Количество workers для фонового обновления. По умолчанию 10.
cache.judge.key-prefix Префикс Redis-ключей.
cache.redis.address Адрес Redis в формате host:port.
cache.redis.password Пароль Redis.
cache.redis.db Номер базы Redis.

TTL и фоновое обновление

Фоновое обновление не продлевает TTL записи само по себе. TTL продлевается при чтении данных из кэша реальными запросами, поэтому редко используемые записи со временем удаляются из Redis.

Управление кэшем

Служебный API доступен через Swagger UI:

https://osa-proxy.example.com/api/swagger/

Основные операции:

  • DELETE /api/cache/purls — удалить конкретные PURL из кэша вердиктов;
  • DELETE /api/cache/packages/{packageType} — удалить записи по типу пакета, имени пакета или repository context.
Страница была полезна?