После подключения redis к django и docker данные не сохраняются в redis-cli
Я подключил redis к django и сделал docker-compose, сам redis работает, но если я хочу подключиться к терминалу через docker exec -it redis redis-cli, то он подключается, но я не могу получить никаких данных, и если я пишу команду keys *, то данных тоже нет (кроме celery)
version: '3.8'
services:
web:
build: .
container_name: django
ports:
- "8000:8000"
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
env_file:
- .env
environment:
- DEBUG=1
- DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- REDIS_HOST=redis
depends_on:
- db
- redis
links:
- db:db
db:
container_name: postgres
image: postgres
volumes:
- ./data/postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=${BD_NAME}
- POSTGRES_USER=${BD_USER}
- POSTGRES_PASSWORD=${BD_PASSWORD}
- POSTGRES_HOST_AUTH_METHOD=trust
expose:
- '5432'
redis:
image: "redis:alpine"
restart: always
container_name: redis
command: redis-server
ports:
- 6379:6379
celery:
build: .
command: celery -A wishes worker -l INFO
volumes:
- .:/app
depends_on:
- web
- redis
- db
environment:
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
volumes:
postgres_data:
Если Redis
пуст, то, вероятно, вы забыли установить BACKEND для CACHES значение django.core.cache.backends.redis.RedisCache
.
По умолчанию для CACHES используется бэкэнд django.core.cache.backends.locmem.LocMemCache
, который хранит данные кэша в памяти.