Django-redis персистирование json-данных

У меня есть небольшой django сайт, который управляет куполом анстрономии и домашней автоматикой. При запуске проект загружает 3 json файла: реле, условия и домашняя автоматика. Чтобы избежать постоянного чтения и записи на ssd Pi4, я загружаю json-файлы в REDIS (при запуске в приложениях, см. ниже). У меня уже есть REDIS, запущенный в докере, поскольку проект использует celery.

Моя проблема в том, что в течение нескольких минут после загрузки json в REDIS он очищает данные из кэша.

Я загружаю json-файл в виде словаря (dict) в apps

cache.set("REDIS_ashtreeautomation_dict", dict, timeout=None)

и установить

CACHES = {
"default": {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://redis:6379",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "SERIALIZER": "django_redis.serializers.json.JSONSerializer",
        "TIMEOUT": None
    }
}

}

Мне не нужно, чтобы данные сохранялись, если докеры упадут, и мне не нужны функции db. Кэширование этих файлов - идеальный вариант, но мне нужно, чтобы они "оставались живыми" в течение всего срока службы сервера.

Спасибо.

Спасибо, Кевин.

Перемещение TIMEOUT решило проблему.

CACHES = {
"default": {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://redis:6379",
    "TIMEOUT": None,
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "SERIALIZER": "django_redis.serializers.json.JSONSerializer",
    }
}

}

Я собираюсь включить некоторый код, чтобы поймать долгосрочные политики "выселения" REDIS (т.е. перезагрузить json-данные). Я не хочу углубляться в докер REDIS.

Спасибо

Ян

Вернуться на верх