问题标签 [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.

0 投票
2 回答
261 浏览

django - Django 缓存 + Django 数据库请求

我正在构建一个 Django Web 应用程序,它允许用户从计算机系统中选择一张照片并继续填充到用户时间轴上。时间线最初将显示 10 张照片,然后可以拉动刷新以获取时间线上的下 10 张照片。

所以我的第一个问题是我能够上传存储在文件系统上的图像,但是我如何只显示前 10 个,然后刷新以获取下一个 10,依此类推。

接下来,我希望应用程序的用户体验更快。所以,我正在考虑缓存。所以,我在想,我要缓存什么。由于 Django- 中有 3 种缓存类型Database cache, MemCache, or FileSystem Caching。所以我的第二个问题是我应该缓存每个用户的前 10 张照片还是其他什么?

请回答您的建议。

0 投票
1 回答
110 浏览

django - Django缓存实现

好吧,我正在使用 Django 设计一个 Web 应用程序。该应用程序允许用户从计算机系统中选择照片并继续填充到用户时间轴上。时间线视图有一个用户上传的所有照片的列表/网格,按时间顺序排列,显示 50 张照片,然后拉动刷新以获取时间线上的下 50 张照片。该实现适用于多个用户。

现在,我正在考虑缓存应用程序的快速用户体验。像大多数站点一样,将用户的时间线存储到缓存中,这样每当用户登录时,首先检查信息的地方是从缓存中提供请求,如果那里不可用,那么你去数据库查询信息。

主要是在一行中,我现在尝试将不同用户的所有时间线缓存在缓存中。

我已经完成了 webapp 的构建减去缓存部分。所以,我的问题是如何缓存不同用户的所有时间线?

0 投票
2 回答
3011 浏览

django - Django缓存测试

由于我是 django-cache 的新手,我试图在 Django 中缓存一个特定的视图。我不确定数据是从缓存中还是从数据库中获取的。我该如何验证?作为新手,还请检查我是否正确缓存了视图?

视图.py

设置.py

0 投票
0 回答
218 浏览

django - 使用 Django 获取缓存

我们正在尝试在 Django 中实现缓存。我们尝试过 memcache、文件系统缓存和本地内存缓存。不管它是什么不起作用——我们放在模板上测试缓存的时间戳总是在更新,所以我们知道它不起作用。

这是代码的相关部分。

意见.PY

0 投票
0 回答
750 浏览

django - 在查询中对反向外键对象使用 prefetch_related 时未设置 Django QuerySet 缓存

不确定这是否是 django 中的错误,或者我从错误的角度接近这个问题。

我需要运行一个查询,以返回所有“站点”模型对象以及通过外键与站点模型对象相关的其他一些模型对象。

为此,我运行:

这很棒,它在单个查询中带回了与每个站点相关的所有坦克、终端和状态对象。我的问题是,如果我随后尝试缓存此查询集(从而允许用户在 XLS/CSV 中下载此查询集而无需执行任何其他查找),缓存始终设置为无(即未设置) .

只有当我传递与站点相关的模型名称时才会发生这种情况(即反向 FK)。如果我传递与站点相关的模型名称或删除 prefetch_related 调用,则缓存确实设置成功。但是,如果我这样做,则在评估查询集时,数据库至少会被命中 100 次。

因此,简而言之,问题似乎是在查询集上使用 prefetch_related 来拉入反向 FK 查找会使该查询集的缓存失效。此外,在查询集上运行 _set 时也会失败(例如 company.site_set.filter(...))

我假设这与站点模型中没有直接引用链接到它的对象有关,但了解这一切的底层机制会很有用。

任何人都可以对此有所了解吗?我在生产中使用 memcached。

0 投票
1 回答
1875 浏览

django - Django KEY_PREFIX 与 CACHE_MIDDLEWARE_KEY_PREFIX

到目前为止,我一直在为我的 4 个站点使用单个 memcached 实例。在其中三个我使用 aKEY_PREFIX因为文档暗示我需要这样做。一切都很好,但现在我需要定期清除列表视图(比如添加条目时)。我找到了一种清除页面的方法,并在我遇到时正在查看它是如何工作的CACHE_MIDDLEWARE_KEY_PREFIX,现在我很困惑。

  1. 似乎从未使用过 KEY_PREFIX ,除非您手动定义一个键然后实际使用它。这是一个真实的说法吗?特别是有关使用的文档KEY_PREFIX似乎不准确?

  2. 看来我应该在我的设置文件中执行此操作以确保它们对齐但我不想复制密钥(演示:演示:)。这实际上会复制它吗?

    KEY_PREFIX = CACHE_MIDDLEWARE_KEY_PREFIX = '演示:'

我真的很想了解这两种机制是如何工作的。我开始怀疑他们真的不一样

0 投票
1 回答
119 浏览

python - 在什么时候正确生成缓存键

在根据文档中,它有效地表示您应该KEY_PREFIX在服务器之间共享缓存实例时使用 a 。我的问题是 KEY_PREFIX 何时应用?在这里使用MemcachedStats是基本示例

在这一点上它看起来不错 - 我的意思是前缀已设置或我认为..

在这一点上,这只是一个错误吗?

0 投票
1 回答
1383 浏览

python - Django shell 不尊重缓存配置

在我的 settings.py 中,我有:

但如果我这样做python manage.py shell

我越来越:

为什么!???现在我无法清除我的缓存...

为了证明我的配置是正确的,我可以这样做:

我得到:

看起来get_cache在定义 CACHES 之前调用了方法...

0 投票
1 回答
725 浏览

django - 如何正确处理 Django 会话

我有以下要求:

  1. 用户必须能够查看(并注销)他们的其他会话。
  2. 会话必须在浏览器关闭时和一段时间不活动后过期
  3. default数据库不能用于存储会话。

我目前的方法是设置SESSION_EXPIRE_AT_BROWSER_CLOSE和添加一个中间件类,该类检查 last_activity / 并更新时间戳(或logout()在会话过期时调用),并对非活动会话运行定期清理。

但是,我找不到在请求之外访问非数据库支持的会话的方法(或在请求中访问除当前会话之外的任何内容的方法)此外,我找不到任何文档如何存储django_session表到另一个数据库。

我目前正在使用基于文件的缓存来使用缓存支持的会话,但这可以更改 - 唯一的要求是将会话存储在default数据库中。

0 投票
0 回答
421 浏览

python - Django 无法清除 Oracle 后端的数据库缓存

我的 oracle 缓存表中有一行。我正在尝试使用标准 django 方式清除它:

但它不起作用!该行仍在我的缓存表中。

所以我运行并从方法中python manage.py sell放入一些代码:DatabaseCache.clear()

但它也不起作用......

我没有抛出任何异常,我的“缓存”连接在settings.py.

当我打开 SQL Developer 并放

表被正确截断。

另一方面,当我添加:

django.db.transaction.TransactionManagementError: This code isn't under transaction management抛出异常,但表现在被截断。

问题是:我应该怎么做才能让我的表被截断但不抛出异常?

这是 djangoDatabaseCache.clear()方法中的错误吗?

我正在使用 django 1.4。