Django 中的缓存和 django-channels 通道层可以使用相同的 Redis 存储吗?

sun*_*unw 3 django django-cache django-redis django-channels

我有一个 Django 3.1 应用程序,它使用 Redis 作为其缓存后备存储 (django-redis)。我希望使用 django-channels,它能够使用 Redis 作为通道层

同时为缓存和 django-channels 通道层使用相同的 Redis 存储是否安全?换句话说,我希望在我的 settings.py 中包含以下内容,并且我想知道这是否可以。

import environ

env = environ.Env()

REDIS_HOST = env('REDIS_HOST', default='127.0.0.1')
REDIS_PORT = env('REDIS_PORT', default='6379')

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        "LOCATION": "redis://" + REDIS_HOST + ":" + REDIS_PORT + "/0",
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
            'CONNECTION_POOL_KWARGS': {'max_connections': 30},
            'IGNORE_EXCEPTIONS': True,
        }
    }
}

CHANNEL_LAYERS = {
    "default": {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        "CONFIG": {
            "hosts": [(REDIS_HOST, int(REDIS_PORT))],
        },
    }
}
Run Code Online (Sandbox Code Playgroud)

min*_*lyu 5

除非您的缓存存在名称冲突,否则它是安全的,这种情况很少发生,因为默认情况下密钥在通道中带有前缀:

默认情况下,频道密钥前缀为asgi:组密钥前缀为asgi:group:您可以在此处阅读更多信息:频道密钥前缀