问题标签 [django-redis]

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

django - 同一模型 django 中的一对一 vs 字段

我创建了两个模板,我有扩展模板 De 用户 (AbsctractUser) 和带有字段 total_score 的模板 (Score)。

从我对带有redis的django缓存的理解来看,只要不修改该行,redis就会将信息保存在缓存中。

total_score 字段将定期更新,例如每 10 分钟 100 次,如果添加到 AbstractUser 模板中,这将强制 redis 在每次页面更改(视图)时定期更新用户的缓存,而如果我创建第二个 Score 模板使用 OnetoOne 关系,该关系将仅在相关的 2 个页面上更新,或者视图加载 Score 模型。

或者我可以直接将字段 total_score 放在我的抽象用户中并定期更新。但对我来说,我失去了抽象用户模型的 redis 效率。我想知道我的推理是否正确...

我能读到的是,OnetoOne 对于扩展已经存在的表很有用,但是对于创建新项目,必须避免 OnetoOne,并直接在模型中添加字段。所以我一头雾水。先感谢您。

例子 :

适合 redis 缓存 (score_user) 更新行 score_user 的频繁更新:

VS

0 投票
1 回答
2383 浏览

ssl - 在集群模式下访问 AWS elasticache redis 时出错)+ 从 django 服务启用 TLS

我正在尝试在启用 TLS 的情况下连接 AWS elasticache(集群模式下的 redis),库版本和 django 缓存设置如下

客户端类(由redis-py-cluster提供)似乎没有问题,因为我可以访问

但是当 django 服务尝试访问缓存时,我看到了这个错误,是否有任何我可能遗漏的配置细节?

我还尝试传递"ssl_ca_certs": "/etc/ssl/certs/ca-certificates.crt"并将CONNECTION_POOL_KWARGS位置方案设置为rediss仍然没有运气

0 投票
1 回答
106 浏览

django - 使用缓存是一个好主意吗?如何在 Django 中为单个页面使用 4000-10000 个数据行?

姜戈 2.2

我需要从特定数据表(我们称之为)中获取 4000-10000 数据行commonsites以显示网页。

我可以缩小到这 4000-10000 行中的 3 个字段(id、name、business_id)

我的流量很低。但我想知道使用缓存来获取这 4000-10000 行是否是个好主意

这些行的数据不太可能改变。但是,如果它们确实更改或被删除,我如何更新/删除缓存中的单个行,而不是整个缓存?

或者这甚至是一个好主意?

我的安装是:

更新

添加更多的清晰度,网页是一个检索。发出页面请求后,javascript 前端将进行 API 调用。然后,此 API 调用将从数据表中获取这 4000-10000 个数据行。

所以这些数据行是预先存在的数据。

数据作为 API json 数据作为 json 数据中的列表发送。

需要明确的是,数据不会分页。都会显示出来。而且我没有测量数据大小,所以我不能说数据有多大。我怀疑它是否超过 5mb。

0 投票
2 回答
110 浏览

django - 如何在 django-redis 中停用压缩器?

我在 django 中使用 django-redis 并想关闭压缩器。有几个选项可以设置各种类型的压缩器,如 zlib、lzma 等,但不是没有压缩器。

0 投票
0 回答
218 浏览

django - django-redis-cache 创建具有整数值的随机键

我在我的 Django 项目中使用以下内容:

在我的 settings.py 中,我指定了以下缓存:

在我的任何 django 应用程序中,我实际上都没有使用这个 redis 缓存,而且我的所有应用程序中也都启用了 never_cache。session_engine 设置为使用文件:

但是,当我检查我的 redis 中的密钥时,我看到随机密钥一直被创建和删除:

(我的前缀是 django_backend,然后我将其更改为 django_backend_2,这就是为什么您会看到一些前缀为 django_backend 而一些为 django_backend_2。)

这些键中的值也只是整数。

为什么会发生这种情况,因为键的数量似乎在不断增长。

谢谢

0 投票
1 回答
6071 浏览

python-3.x - Django 频道错误“关闭时间太长并被杀死”。

我在控制台日志中收到此错误,并且在提交表单时它不断加载不会将数据发布到服务器。

这是我关闭频道的代码。

如何解决这个问题?

0 投票
1 回答
154 浏览

django - (Django) RQ 调度程序 - 作业从队列中消失

由于我的项目有很多活动部件..可能最好解释症状

我有 1 个调度程序在 1 个队列上运行。我添加了计划的作业(在计划的几秒钟内执行)。

我一直在重复调度作业,而没有 rq 工作者做任何事情(事实上,该过程完全关闭)。换句话说,队列应该只是堆积起来。

但是突然之间……队列被(随机)切断,前 70-80% 的工作就消失了。

这与以下有什么关系:

  1. 队列的“最大长度”?(但我不记得看到任何限制)
  2. 调度程序是否会自动“丢弃”开始时间在当前时间之前的作业?
0 投票
1 回答
420 浏览

python - [Django rest_framework]使用redis作为Django DRF缓存的问题

我正在尝试为其余框架打开 redis 缓存。

我的配置似乎是正确的。当我运行时,它会报告错误。如下图:</p>

**ImportError:无法为 API 设置“DEFAULT_CACHE_KEY_FUNC”导入“rest_framework_extensions.utils.default_cache_key_func”。

ImportError:无法从“django.db.models.sql.datastructures”导入名称“EmptyResultSet”(C:\Users\HUANG\AppData\Local\Programs\Python\Python38\lib\site-packages\django\db\models\ sql\datastructures.py).**

令人沮丧的是我是初学者和菜鸟,我无法解决它。而且我在网上也没有找到答案,我只能试着来这里寻求你的帮助

版本:

  • 姜戈:3.2.10
  • 博士:3.11
  • redis: 3.0.2 (windows版本)</li>

我的设置:

0 投票
0 回答
183 浏览

django - 为什么 django 应用程序在 redis 中创建巨大的键

我正在与 redis 一起在 kubernetes 集群中运行 django 应用程序(wagtail)。这两个部分是通过 django-redis 连接起来的。这就是我的后端配置的样子

这工作得很好。我可以看到在 redis 中创建了密钥,并且由于 redis,应用程序也非常快。

现在真正的问题是应用程序偶尔会变慢一段时间。经过调查,我们发现真正的问题是在 redis 中创建了一个大小约为 90 MB 的密钥。处理这个关键应用程序需要一些时间并且速度会变慢。

为了进行比较,其他密钥小于 1 MB 总是只有 1 个密钥在一种类型的端点上随机创建,但并非总是如此。

解封后我尝试检查密钥的内容,它是正常的数据量,就像其他密钥一样。但运行

redis-cli --bigkeys

给出类似这样的输出

有人见过类似的问题吗?无论如何要调试根本原因。

django-redis 版本“==4.12.1”
wagtail 版本“==2.11.1”
django 版本“==3.1.3”

0 投票
1 回答
525 浏览

django - 可以为 Django 中的缓存和 django-channels 通道层使用相同的 Redis 存储吗?

我有一个 Django 3.1 应用程序,它使用 Redis 作为其缓存后备存储 (django-redis)。我希望使用 django-channels,它能够将Redis 用于通道层

同时为缓存和 django-channels 通道层使用同一个 Redis 存储是安全还是不安全?换句话说,我希望在我的 settings.py 中有以下内容,我想知道这是否可以。