问题标签 [django-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Django get_cache_key 适用于数据库后端,但不适用于文件系统
尝试使用Django 文件系统缓存后端时,我遇到了一种奇怪的行为。
在尝试查找每个视图缓存键时,我会执行以下操作:
使用数据库缓存后端,它就像一个魅力:
使用文件干缓存后端:
我检查了文件系统缓存,我确定该条目确实存在。
有人知道如何让它工作以及数据库缓存吗?
python - 在 Django 中,如何设置数据库连接超时?
好吧,我知道事情没那么简单。我在我的 settings.py:default
和cache
. 我正在使用DatabaseCache
来自django.core.cache
. 我定义了数据库路由器,因此我可以为我的模型和缓存使用单独的数据库/模式/表。完美的!
现在有时我的缓存数据库不可用,有两种情况:
数据库崩溃时已经建立了与数据库的连接 - 这很容易 - 我可以使用这个配方:http ://code.activestate.com/recipes/576780-timeout-for-nearly-any-callable/并像这样包装我的查询:
/li>尚未建立与数据库的连接 - 所以我需要包含
timelimited
一些实际建立数据库连接的代码部分。但我不知道这样的代码存在哪里以及如何有选择地包装它(即只包装cache
连接,离开default
连接而不超时)
你知道怎么做第2点吗?
请注意,此答案https://stackoverflow.com/a/1084571/940208不正确:
据我所知,没有给出任何结果,并且 cx_Oracle 驱动程序不支持此参数。
django - 为缓存 django 站点设置清漆的正确方法
我刚刚在我的后端服务器前面设置了一个只安装了清漆的服务器,在那里我有两个不同的 django 站点,通过 nginx+gunicorn 提供服务
它似乎有效,但我得到 Header Age = 0,并且查看文档,这不是很好。
我想为匿名用户缓存页面,但不是为经过身份验证的用户或者如果用户有一个名为“AUTHENTICATION”的 cookie
这是我的 default.vcl
是否sessionid
是为每个用户设置的,即使他们没有登录,这会阻止 Varnish 有效地为匿名用户缓存页面?
编辑:
使用isvarnishworking.com这是输出:
编辑2:
我的新 default.vcl:
编辑3:
我的后端响应(前面没有清漆)是:
django - Django 中间件、会话和缓存入门
我的 Django 应用程序中的每个用户都与一个部门相关联,几乎每个请求都涉及一些与部门相关的处理。所以我很想使部门对象在整个应用程序中都可用。
以下哪一项(如果有)是最合适的方法:
- 自定义中间件,它只是从数据库中检索相关部门并将其附加到
request
对象上,request.department
比如 Django,AuthenticationMiddleware
让当前登录的用户在request.user
. (参见,例如,这里和这里) - 当用户登录时将部门置于会话中,然后使用 Django 的
request.session
界面在视图中检索它。
我还没有机会熟悉 Django 的缓存功能,但我希望最终以每个用户为基础缓存该部门,以避免对每个请求造成额外的数据库命中。我看到Django 的会话提供了内置的缓存支持。我还想象缓存也可以用第一种方法来实现。
对于这种事情,使用会话(上面的#2)而不是自定义中间件(上面的#1)有优势吗?从内部 API 的角度来看,中间件方法似乎更干净,但我猜这正是会话的设计目的——所以也许这是开始使用它们的正确机会?
感谢您的任何指导!
django - 在 Django 中缓存匿名用户
我将如何为匿名用户缓存页面但在 Django 1.6 中为授权用户呈现它们?曾经有一个听起来很完美的 CACHE_MIDDLEWARE_ANONYMOUS_ONLY 标志,但它已被删除。
我问是因为每个页面都有一个菜单栏,显示登录用户的姓名和指向他/她的个人资料的链接。
这样做的正确方法是什么?一定是一个常见的问题,但我没有找到通过查看 Django 文档的正确方法。
django - django-redis-cache 和 django-redis 用于使用 Django 进行 redis 缓存的区别?
我注意到有两个不同的项目使用 redis 进行 django 缓存
https://github.com/sebleier/django-redis-cache/
https://github.com/niwibe/django-redis
一个比另一个更出名,更像是一个标准包?我无法决定使用哪个。
python - Redis Python - how to delete all keys according to a specific pattern In python, without python iterating
I'm writing a django management command to handle some of our redis caching. Basically, I need to choose all keys, that confirm to a certain pattern (for example: "prefix:*") and delete them.
I know I can use the cli to do that:
But I need to do this from within the app. So I need to use the python binding (I'm using py-redis). I have tried feeding a list into delete, but it fails:
# And now
# returns 0 . nothing is deleted
I know I can iterate over x:
But that would be losing redis awesome speed and misusing its capabilities. Is there a pythonic solution with py-redis, without iteration and/or the cli?
Thanks!
python - 防止缓存中间件使用 HTTP_COOKIE 生成缓存键
我在使用 Django 缓存中间件时遇到问题。我想缓存一个昂贵的页面,这样就不需要为每个访问者重新生成它。
似乎 SessionMiddleware 在响应标头中设置了“Vary:Cookie”。这指示缓存中间件在构建缓存键时包含 cookie,这意味着缓存不是跨用户会话的全局缓存。
我的 MIDDLEWARE_CLASSES 设置是:
在 UpdateCacheMiddleware 之前移动 SessionMiddleware 似乎可以解决问题。但是,这个 SO 问题表明这是不正确的顺序: Practical rules for Django MiddleWare ordering?
任何想法我做错了什么?
django - How change caching setting in django_cache_utils0.7 to cache the files in different directory other than C drive?
I am using django-cache-utils 0.7 where I am not able to change the cache directory to a drive location other than the default location. Please can anyone tell me how to define custom location and set a size limit on the folder ?
When I try with path location instead of localhost it gives error.
python - 线程的 Django 全局数据
我在我的单进程多线程 django 服务器中有一个共享的全局数据对象——一个经常使用但不经常计算的对象。计算很费时间,所以我想分享一下结果。
我认为使用 django 的 LocalMemCache 来处理这个简单的数据是可行的。奇怪的是,它似乎适用于单个页面加载时的多个 ajax 调用,但由于某种原因,当我在浏览器中重新加载页面时,缓存再次为空。
我究竟做错了什么?
有没有更好的办法?如果我用线程锁控制写访问,全局变量会同样有效吗?
这基本上是我正在做的事情:
编辑:
问题的根本原因是基于访问控制列表(此处不是代码的一部分)检索数据,该列表因请求类型(GET、POST)等而异。计算时,这是一个 POST 请求,其中包含一组访问,并且在读取它时是具有不同访问权限的 GET 请求,并且正在返回不同(且无效)的结果集。