python - 使用 Redis 进行 Django 缓存
问题描述
我在这个博客之后使用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:连接被服务器关闭。
我是这种缓存技术的新手,有什么建议可以解决这个问题吗?
解决方案
您的配置在端口 8000 上指定 Redis,默认情况下,Redis 在端口 6379 上运行。看起来它试图连接您的 Django 应用程序,因此出现连接错误。Redis 作为一个单独的进程运行,监听 6379 端口上的请求。
推荐阅读
- c - 迭代内核链表时我做错了什么
- linux - 为什么这个命令管道在 Debian 或 Mac 上什么也不打印?
- bash - 用于比较日期的 Shell 脚本 If 语句
- javascript - 如果已填写 Javascript(数独),则禁用输入字段
- javascript - 使用以前的用户输入填充下拉列表
- pandas - Python:遍历DataFrame中的所有列标题并为每个列标题创建新字典,其中键:基于两列的值对
- python - 如何在一系列行上对 pandas 数据框列进行矢量化?
- python - Django 返回下载并重定向到不同的页面
- animation - 未捕获的 RangeError:在任何动画中都超过了 wrapperRaf 的最大调用堆栈大小
- python-3.x - 无法使用 Gstreamer-Python 为两个摄像头设置参数