【问题标题】:Django caching with Redis使用 Redis 进行 Django 缓存
【发布时间】:2020-01-27 19:33:37
【问题描述】:

我在这篇博客之后使用 redis 实现了 django 缓存:https://realpython.com/caching-in-django-with-redis/

所以我跟着这个,安装了包, 添加于

CACHES = {
"default": {
    "BACKEND": "redis_cache.RedisCache",
    "LOCATION": "redis://127.0.0.1:8000/",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient"
    },
    "KEY_PREFIX": "example"
}

}

然后在视图中。

from django.conf import settings
from django.core.cache.backends.base import DEFAULT_TIMEOUT
from django.views.decorators.cache import cache_page

CACHE_TTL = getattr(settings, 'CACHE_TTL', DEFAULT_TIMEOUT)

然后为函数添加装饰器

@cache_page(CACHE_TTL)
@login_required_dietitian
def patient_profile(request, id):
    data = {}
    return render(request, 'profile.html', {'data':data})

然后我在运行服务器时收到此错误

redis.exceptions.ConnectionError: 连接被服务器关闭。

我是这种缓存技术的新手,有什么建议可以解决这个问题吗?

【问题讨论】:

    标签: python django redis django-cache django-redis


    【解决方案1】:

    您的配置在端口 8000 上指定 Redis,默认情况下,Redis 在端口 6379 上运行。看起来它正在尝试连接您的 Django 应用程序,因此出现连接错误。 Redis 作为一个单独的进程运行,监听 6379 端口上的请求。

    【讨论】:

    • 好吧,起初我以为我应该输入我的本地主机端口号。
    • 但现在我将端口号更改为 6379,我收到此错误:“连接到 127.0.0.1:6379 时出现错误 10061。由于目标机器主动拒绝,无法建立连接。”对此有任何想法吗?
    • Redis 服务器启动了吗? Redis 本身必须与 Django 一起启动。在命令行启动它:redis-server。
    • 现在出现此错误,找不到任何简单的解决方案:“'redis-server' 不是内部或外部命令、可运行程序或批处理文件。”
    • 那么你安装Redis了吗?如果是这样,它找不到它的原因是因为您没有将 redis-server 添加到您的环境变量中。看看这个redislabs.com/blog/redis-on-windows-8-1-and-previous-versions,向下滚动到它提到环境变量的地方并按照它。
    猜你喜欢
    • 2021-08-29
    • 2014-03-22
    • 2017-01-24
    • 2018-10-12
    • 2020-06-23
    • 2013-12-31
    • 2013-03-22
    • 2019-03-11
    • 1970-01-01
    相关资源
    最近更新 更多