问题标签 [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.
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
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
仍然没有运气
django - 使用缓存是一个好主意吗?如何在 Django 中为单个页面使用 4000-10000 个数据行?
姜戈 2.2
我需要从特定数据表(我们称之为)中获取 4000-10000 数据行commonsites
以显示网页。
我可以缩小到这 4000-10000 行中的 3 个字段(id、name、business_id)
我的流量很低。但我想知道使用缓存来获取这 4000-10000 行是否是个好主意
这些行的数据不太可能改变。但是,如果它们确实更改或被删除,我如何更新/删除缓存中的单个行,而不是整个缓存?
或者这甚至是一个好主意?
我的安装是:
- redis==3.3.11 # https://github.com/antirez/redis
- django-redis==4.11.0 # https://github.com/niwinz/django-redis
更新
添加更多的清晰度,网页是一个检索。发出页面请求后,javascript 前端将进行 API 调用。然后,此 API 调用将从数据表中获取这 4000-10000 个数据行。
所以这些数据行是预先存在的数据。
数据作为 API json 数据作为 json 数据中的列表发送。
需要明确的是,数据不会分页。都会显示出来。而且我没有测量数据大小,所以我不能说数据有多大。我怀疑它是否超过 5mb。
django - 如何在 django-redis 中停用压缩器?
我在 django 中使用 django-redis 并想关闭压缩器。有几个选项可以设置各种类型的压缩器,如 zlib、lzma 等,但不是没有压缩器。
django - django-redis-cache 创建具有整数值的随机键
我在我的 Django 项目中使用以下内容:
在我的 settings.py 中,我指定了以下缓存:
在我的任何 django 应用程序中,我实际上都没有使用这个 redis 缓存,而且我的所有应用程序中也都启用了 never_cache。session_engine 设置为使用文件:
但是,当我检查我的 redis 中的密钥时,我看到随机密钥一直被创建和删除:
(我的前缀是 django_backend,然后我将其更改为 django_backend_2,这就是为什么您会看到一些前缀为 django_backend 而一些为 django_backend_2。)
这些键中的值也只是整数。
为什么会发生这种情况,因为键的数量似乎在不断增长。
谢谢
python-3.x - Django 频道错误“关闭时间太长并被杀死”。
我在控制台日志中收到此错误,并且在提交表单时它不断加载不会将数据发布到服务器。
这是我关闭频道的代码。
如何解决这个问题?
django - (Django) RQ 调度程序 - 作业从队列中消失
由于我的项目有很多活动部件..可能最好解释症状
我有 1 个调度程序在 1 个队列上运行。我添加了计划的作业(在计划的几秒钟内执行)。
我一直在重复调度作业,而没有 rq 工作者做任何事情(事实上,该过程完全关闭)。换句话说,队列应该只是堆积起来。
但是突然之间……队列被(随机)切断,前 70-80% 的工作就消失了。
这与以下有什么关系:
- 队列的“最大长度”?(但我不记得看到任何限制)
- 调度程序是否会自动“丢弃”开始时间在当前时间之前的作业?
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>
我的设置:
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”
django - 可以为 Django 中的缓存和 django-channels 通道层使用相同的 Redis 存储吗?
我有一个 Django 3.1 应用程序,它使用 Redis 作为其缓存后备存储 (django-redis)。我希望使用 django-channels,它能够将Redis 用于通道层。
同时为缓存和 django-channels 通道层使用同一个 Redis 存储是安全还是不安全?换句话说,我希望在我的 settings.py 中有以下内容,我想知道这是否可以。