如何在Django中连接Redis?

6
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

我正在尝试连接到Redis将我的对象保存在其中,但是当我尝试连接时,它会给我这个错误:

错误10061,无法连接127.0.0.1:6379。由于目标计算机积极拒绝,因此无法建立连接。

它是如何工作的?我应该在位置中提供什么?我正在使用公司代理。需要一些关于位置的详细说明。


你在本地机器上运行redis吗?你是如何启动它的? - Daniel Roseman
是的,我在本地机器上。 - Yogi
这不是我问的。Redis 在本地机器上运行吗? - Daniel Roseman
不是的,它不能。我该如何运行它?或者我能直接连接到Redis服务器吗? - Yogi
2个回答

13

如果你的 Redis 设置了密码,你应该有如下的配置:

CACHES.update({
    "redis": {
        "BACKEND": "redis_cache.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
             "PASSWORD": "XXXXXXXXXXX",
             "CLIENT_CLASS": "redis_cache.client.DefaultClient",
        },
    },
})

3

首先启动Redis服务器。您的操作系统提供了一种机制来实现这一点,例如在某些Linux上您可以使用systemctl start redis/etc/init.d/redis start等命令,或者直接输入以下命令启动:

$ redis-server

这将把它作为前台进程运行。

然后尝试运行 redis-cli ping 命令。如果收到 PONG 响应,则表示 Redis 实际上正在本地机器上运行:

$ redis-cli ping
PONG

如果你已经做好了那部分工作,再尝试一下Django。


我下载了Redis服务器,但现在它显示“客户端发送了AUTH,但未设置密码”。我已经打开了redis-cli.exe,但找不到设置服务器密码的命令。需要帮助解决这个问题。 - Yogi
@Yogi:你似乎没有在django-redis中配置密码,但是你尝试阅读Redis文档了吗?你可以使用requirepass配置设置服务器的密码。请确保它们匹配。 - mhawke
请查看 https://niwinz.github.io/django-redis/latest/#_configure_as_cache_backend。密码已在位置URL中配置。 - mhawke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接