簡體   English   中英

django-redis 持久化 json 數據

[英]django-redis persisting json data

我有一個小型 django 站點,它控制着天文圓頂和房屋自動化。 項目啟動時會加載 3 個 json 文件:繼電器、條件和家庭自動化。 為了避免不斷地讀取和寫入 Pi4 的 ssd,我將 json 文件加載到 REDIS(在應用程序中啟動時,見下文)。 由於項目使用芹菜,我已經在 docker 中運行了 REDIS。

我的問題是,在將 json 加載到 REDIS 的幾分鍾內,它會清除緩存中的數據。

我在應用程序中以字典(dict)的形式加載json文件

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
    }
}

}

如果碼頭工人宕機並且我不需要數據庫函數,我不需要數據保持不變。 緩存這些文件是理想的,但我需要它們在服務器的整個生命周期內“保持活力”。

謝謝你。

謝謝凱文。

移動 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 docker。

謝謝

伊恩

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM