问题标签 [django-cache-machine]

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 回答
1156 浏览

django - django-cache-machine 和 Redis

我正在尝试使用 django-cache-machine 在我的应用程序中缓存查询,但我想使用 Redis 作为后端。文档并没有真正解释如何做到这一点,但是存储库中充满了 Redis 引用,所以我很确定这是可能的。我想确保我做对了,所以我想知道是否有人有配置这个的经验,也许更重要的是,知道是否有任何警告?

0 投票
0 回答
411 浏览

django - 使用 django-cache-machine 在 Django 中覆盖管理器

由于django-cache-machine覆盖了对象模型属性,所以修改查询集的正确方法如下:

我们可以objects = base.CachingManager在一些模型中做。这意味着,已经从自身CachingManager继承。models.Manager所以我们只需创建一个继承自 base.CachingManager 的模型。正确的?

这是正确的方法吗?

0 投票
1 回答
1345 浏览

django - 在 Heroku Memcachier 上配置 Django 缓存机?

我想在 Heroku 上使用 Memcachier来使用很棒的 Cache Machine Django 应用程序( https://github.com/jbalogh/django-cache-machine )。

据我了解,缓存机器无法与 Memcachier 一起使用,因为 Memcachier 需要 PyLibMC 和 SASL 身份验证(请参阅https://devcenter.heroku.com/articles/memcachier#django)。Cache Machine 说它支持 PyLibMC——你所要做的就是将“caching.backends.memcached.PyLibMCCache”放到 CACHES 设置中。

但是,当您这样做时,您会收到此错误:“来自 memcached_set 的错误 47:服务器已失败并且已禁用,直到定时重试”

我认为这是因为 caching.backends.memcached.PyLibMCCache 继承自 django.core.cache.backends.memcached.PyLibMC (参见https://github.com/jbalogh/django-cache-machine/blob/master/ cache/backends/memcached.py),因为它应该从 django_pylibmc.memcached.PyLibMCCache 继承以便在 Heroku 上工作(但这有点像在黑暗中拍摄)。

我制作了自己的自定义缓存后端,该后端继承自 django_pylibmc.memcached.PyLibMCCache,但是现在当我检查 Heroku Memcachier 面板时,似乎我所做的任何事情都没有增加缓存——即使它停留在 50 mb我希望它会随着每个查询集而增加。

有没有人在 Heroku 上成功设置缓存机?如果是这样,你是怎么做到的?

0 投票
0 回答
179 浏览

django - 一些查询没有被 django-cache-machine / django-johnny-cache 缓存的查询集

我正在寻找缓存来自数据库中几个相关表的一些很少更新的数据(具体来说是 MySQL)。我已经尝试使用上述 django 应用程序进行 django ORM 查询集缓存,但偶然发现了一些奇怪的行为:即使它们应该像其他查询一样来自缓存,也会查询一些查询。

我在一组 6 个查询中检索数据,混合任何一个:过滤器、选择相关、预取相关(M2M 关系)、正向和反向关系。只是数据检索,没有更新。这发生在一个专用方法中,出于评估的目的,我从 TestCase 调用了两次。(为了抢占任何潜在问题,评估方法中没有任何类型的事务管理)

我观察到的是重复了 3 个查询 - 一个是来自 prefetch_related 的反向 m2m(而另一个反向 m2m 被缓存),以及两个相当简单的反向管理器查询,即使更改为 ModelName.objects.all 也能保持这种行为() 或对应关系的过滤器。我为寻找某种模式而进行的最后这些试验仅在 johnny-cache 上进行,这对于我的特定场景来说是更可取的,因为它的失效策略。我还尝试以一些通用方式修改该方法,基本上是在黑暗中拍摄,例如删除有问题的查询(所有内容都已缓存),只留下一个有问题的查询(仍未缓存),更改查询顺序(无更改)。

有没有人遇到类似的事情或可以提供一些解释?

0 投票
1 回答
673 浏览

django - Django:如何使用 Cache Machine 缓存使用 GeoManager 的模型?

我使用文档中的模式在我的非地理模型上使用缓存机器的缓存管理器:

但是我有几个包含 GeoDjango 字段类型的模型,因此必须使用 GeoManager,例如

如何将这两个管理器集成到我的地理模型中?我在 Django 1.5 / Python 2.7.5 上。

指向覆盖我得到的 CachingManager,但是 Cache Machine 文档让我认为我需要确保 QuerySet 被缓存,即成为 CachingQuerySet:

从另一个管理器的 get_query_set 方法返回一个 CachingQuerySet 而不是继承 CachingManager

0 投票
1 回答
374 浏览

python - Django Cache-Machine 缓存失效在管理员中不起作用

我为我的 Django 1.6 项目安装了缓存机器,如下所述:http: //cache-machine.readthedocs.org/en/latest/

现在在 django 的管理员中,我再也看不到新条目了。缓存失效不起作用。我可以看到该条目正在数据库中生成,但它没有显示在管理员的列表视图中。我究竟做错了什么?

提前谢谢!

0 投票
1 回答
87 浏览

django - 什么样的 Django 有缓存

例如,有像 hazelcast 这样的缓存。

那么在 django 缓存类型中有哪些?

哪个是最优选的?

0 投票
2 回答
333 浏览

django - Django 管理缓存 m2m 关系

我有两个模型:

模型.py

管理员.py

数据库中大约有23000个城市。

当我在管理员中编辑公司详细信息时,它会永远加载!!!只需访问 admin/myapp/company/12/ 需要 2-3 分钟 - 这太可怕了。

如何加快速度并缓存城市模型查询集?

0 投票
1 回答
1827 浏览

python - 设置 django-cache-machine 的正确步骤是什么?

我是 Django 和缓存的新手,正在使用 Django 1.6。

我按照 django-cache-machine' 页面上的说明进行安装。

1.pip安装django-cache-machine

2.将以下内容添加到settings.py

3.将更改应用到我的一个模型上,就像说明中的最小情况一样。

当我尝试运行服务器时,它显示以下错误。

django.core.cache.backends.base.InvalidCacheBackendError:找不到后端“caching.backends.memcached.MemcachedCache”:“模块”对象没有属性“CacheClass”

我之前安装了 johnny-cache 但很快将其删除,然后安装了缓存机器。我不知道这是否相关。Memcached 也在运行。

提前致谢!

编辑:

刚刚发现应用的Github页面的一期已经提到了。 https://github.com/jbalogh/django-cache-machine/issues/44

并进行了修复。所以我重新安装了 github 版本。

现在它显示另一个错误。

所以我安装了另一个名为 python-memcached 的应用程序。服务器运行但未发生缓存。

我运行 python shell 并且应用程序运行良好。所以我认为问题仍然是 django-cache-machine。

我猜 django-cache-machine 还没有完全支持 Django 1.6。

如果有人知道如何让它在 Django 1.6+Python 2.7 上运行,请告诉我。

再次感谢!

0 投票
1 回答
527 浏览

python - 如何让 Django Cache Machine 在 django.contrib.auth.models.User 上工作?

我正在使用Django Cache Machine来缓存我的 Django ORM 对象。这是一个很棒的软件。它极大地减少了我几乎所有模型的数据库访问——而且它易于使用。

但是,仍然没有缓存一个模型:django.contrib.auth.models.User. 因为那不是我自己的应用程序代码,所以我没有为它配备CachingMixinCache Machine 指令告诉您添加到每个模型中。所以现在即使我自己的所有应用程序的模型都被缓存了,但User模型没有。所以仍然有许多不必要的数据库访问。

消除这些数据库访问的最佳方法是什么?django.contrib.auth.models.User不是我在 Git 中的代码库的一部分。我宁愿根本不更改该类或模块的源代码。