我有一个小的django站点,控制天文圆顶和房屋自动化。在启动项目时,加载3个json文件:继电器,条件和家庭自动化。为了避免对Pi4的ssd进行持续的读写,我将json文件加载到REDIS中(在应用程序启动时,见下文)。我已经有REDIS运行在一个docker作为项目使用芹菜。
我的问题是,在几分钟内加载json到REDIS它清除缓存中的数据。
我在apps中以字典(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
}
}
}
如果dockers宕机,我不需要数据持久化,也不需要db函数。缓存这些文件是理想的,但我需要它们在服务器的生命周期内"保持活跃"。
谢谢。
谢谢Kevin。
移动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。
感谢伊恩