我将redis连接到django并进行了docker-compose,redis本身可以工作,但如果我想通过docker exec连接到终端-它是redis redis-cli,那么它就会连接,但我无法获得任何数据,如果我写key*命令,那么也没有数据(除了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-cli示例

127.0.0.1:6379> get milan
(nil)
127.0.0.1:6379> keys *
1) "_kombu.binding.celeryev"
2) "_kombu.binding.celery"
3) "_kombu.binding.celery.pidbox"
127.0.0.1:6379> keys *
1) "_kombu.binding.celeryev"
2) "_kombu.binding.celery"
3) "_kombu.binding.celery.pidbox"
127.0.0.1:6379> get kranf
(nil)
127.0.0.1:6379> 

和debug_tool

debug_tool

推荐答案

如果Redis是空的,可能是因为

1-您忘记将第BACKEND个设置(共CACHES个)设置为django.core.cache.backends.redis.RedisCache.为缓存提供的默认后端是django.core.cache.backends.locmem.LocMemCache,它将缓存数据存储到内存中.

2-公共LOCATIONredis://<host>:<port>/1,它试图连接db1并与之交互,但默认情况下,路由redis-cli连接到db0.使用redis-cli-n选项将命令执行到特定的数据库(在本例中为db1):redis-cli -n 1

Python相关问答推荐

如何根据另一列值用字典中的值替换列值

使用Keras的线性回归参数估计

使用numpy提取数据块

DataFrame groupby函数从列返回数组而不是值

Excel图表-使用openpyxl更改水平轴与Y轴相交的位置(Python)

如何获得每个组的时间戳差异?

在嵌套span下的span中擦除信息

dask无groupby(ddf. agg([min,max])?''''

如何找出Pandas 图中的连续空值(NaN)?

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

在Python中从嵌套的for循环中获取插值

无法在Spyder上的Pandas中将本地CSV转换为数据帧

504未连接IB API TWS错误—即使API连接显示已接受''

ModuleNotFoundError:Python中没有名为google的模块''

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

为什么按下按钮后屏幕的 colored颜色 保持不变?

FileNotFoundError:[WinError 2]系统找不到指定的文件:在os.listdir中查找扩展名

为什么在生成时间序列时,元组索引会超出范围?

将时间序列附加到数据帧

多个布尔条件的`jax.lax.cond`等效项