Django redis配置使用套接字而不是TCP



我正试图使用Unix套接字而不是TCP连接来使用django-redis:

这是settings.py配置:

CACHES = {
    'default': {
        'BACKEND': 'redis_cache.cache.RedisCache',
        'LOCATION': 'unix:/tmp/redis.sock:1',
        'OPTIONS': {
            'PASSWORD': '',
            'PICKLE_VERSION': -1,   # default
            'PARSER_CLASS': 'redis.connection.HiredisParser',
            'CLIENT_CLASS': 'redis_cache.client.DefaultClient',
        },
    },
}

这是在/etc/redis/6379.conf:的redis配置文件的摘录

# Specify the path for the unix socket that will be used to listen for
# incoming connections. There is no default, so Redis will not listen
# on a unix socket when not specified.
#
unixsocket /tmp/redis.sock
unixsocketperm 755

我仍然收到一个ConnectionInterrumped异常,它代表连接过程中的错误。关于这个配置的问题有什么想法吗?

附言:我的Django版本是1.5.1,Django-redis是3.3,hiredis是0.0.1

EDIT:显然我读错了缓存提供程序,下面的答案是django-redis-cache的解决方案,而不是django-redis。不过,我将保留答案,因为更改缓存提供程序并使用此配置似乎已经解决了问题。

您不应该需要unix:前缀,并且后端设置看起来很奇怪;

'default': {
    'BACKEND': 'redis_cache.RedisCache',
    'LOCATION': '/tmp/redis.sock',
    'OPTIONS': { ...

相关内容

  • 没有找到相关文章

最新更新