问题标签 [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 投票
1 回答
1192 浏览

django - 使用redis作为会话后端时,django docker容器无法访问redis容器

我正在尝试部署模仿我的 django+postgresql(AWS RDS)+redis(AWS Elasticache) 的暂存环境。

我使用最新的 django-redis(4.10) 来设置 django 和 redis。我的设置如下:

当我在我的 pipenv 环境中本地运行它时,postgresql 在 AWS RDS 上远程运行,redis 服务器在本地运行brew services,一切正常。但是如果我docker-compose up是容器,django 的会话处理似乎会中断。

我的 docker-compose 如下:(请注意,因为我打算使用 AWS RDS 和 Elasticache,所以我没有在 compose 文件中包含 postgres 和 redis 容器)

当我尝试登录管理站点时,django 容器返回以下错误。

我可以确认 django 没有访问 redis 服务器,因为 redis-cli 的 MONITOR 没有显示任何与 django 相关的日志。

如果我把上面settings.py中的两行注释掉,

我可以登录管理员没有问题,所以它肯定与使用 redis 作为会话后端有关,并且可能是由于无法从 django docker 容器访问 redis。

非常感谢任何帮助!我已经工作了整整两天来解决这个问题,现在我的老板正在为此欺负我。:(

0 投票
1 回答
645 浏览

django - Python 2.7 和 3.7.2 兼容的 django-redis 序列化程序

我正在尝试编写一个 py2.7 - py3.7 兼容的 django-redis 序列化程序。我正在使用django-redis==4.8.0withdjango==1.11.22PickleSerializer. 我在 django-redis 上看到了这个问题https://github.com/niwinz/django-redis/pull/279并编写了一个类似于线程中所说的序列化程序。但是我的对象似乎有点复杂?没有把握。

我的目标是同时运行 2 个应用程序,一个使用 py2.7,另一个使用 py3.7。它们必须 100% 兼容,而我无法克服这一点。

这是序列化程序的代码:

我试图序列化的对象示例:

这个对象比那个大得多,但我假设如果我可以用这个对象做流程,我可以用一个更大的对象做。

在尝试load使用 python 3.7.2 上的对象后,我收到此错误:

关于我能做什么的任何想法?

0 投票
1 回答
852 浏览

python - 如何从python和rust中存储和读取redis中的常用数据?

我有一些数据存储在 redis 缓存中,我的应用程序将在 Rust 中读取这些数据。数据由python存储。每当我存储一个字符串或一个数组时,它都会以一种我无法读入 Rust 的奇怪形式存储它。反之亦然,我想从 Rust 编写并能够在 python 中读取它。

使用 django 外壳:

使用 redis-cli:

生锈的输出:

Rust 代码使用 redis-rs 库读取数据:

我希望能够将字符串或数组读入 Rust,因为它是用 Python 编写的,反之亦然。此外,一个键中的数据只能由 Rust 或 Python 写入,而不是两者。

这个问题不是这个问题的重复,因为它专门针对重音编码,但是,我也想解决我的数组问题。此外,django 在 redis 中为字符串设置的值不仅仅是字符串的 UTF 编码。

0 投票
1 回答
1190 浏览

python - 使用 Redis 进行 Django 缓存

我在这个博客之后使用redis实现了django缓存:https ://realpython.com/caching-in-django-with-redis/

所以我跟着这个,安装了包,添加了

}

然后在视图中。

然后为函数添加装饰器

然后我在运行服务器时收到此错误

redis.exceptions.ConnectionError:连接被服务器关闭。

我是这种缓存技术的新手,有什么建议可以解决这个问题吗?

0 投票
1 回答
1128 浏览

django - 多个队列中的芹菜任务无法启动

我将 django 与 celery 和 redis 一起使用来处理异步任务。我定义了三个任务,它们应该在您自己的队列中运行。

我的项目结构如下所示:

我在我的 api 应用程序的 task.py 中定义的任务:

现在这是我的初始化.py

和settings.py中的芹菜设置:

我的 celery.py 看起来像这样:

这是我的设置。现在我开始所有需要的东西(自己终端中的每一行):

一切开始都没有问题。在视图中,我这样称呼任务: manually_task.delay(webseite.pk)

但在工人无所事事。CELERY_TASK_QUEUES如果我在没有,CELERY_DEFAULT_QUEUECELERY_ROUTES设置的情况下尝试此操作settings.py并正常启动工作程序,celery -A django-project worker则它可以正常工作。我做错了什么?

0 投票
1 回答
239 浏览

django - 正常的 django_redis 会生成这种会话密钥吗?

我是 django_redis 库的新手。我正在将此 confs 用于带有 redis 的会话存储:

一切似乎都正常工作。但是,当我检查数据库上会话的密钥(默认 sqlite)然后将该密钥值与 redis-cli 中的 redis db 进行比较时,会话密钥是不同的。在 redis-cli 版本中,会话密钥有一个前缀,即使我没有设置前缀。

会话密钥的数据库(sqlite)版本

redis-cli 版本的密钥

这是正常的吗?

0 投票
1 回答
104 浏览

django - Django Mealtime server listener

I am pretty good at django. I have postgresql with some table and this table populated by a C++ apps. Now i want to build django app to visualize realtime basis whenever any changes occur in the database, it should update realtime in my django frontend.

I am not getting what technology to pic, I have heard of django-channel but not quite sure if i can do it with it.

This post is the purpose to get technology recommendation suggestion.

Can anyone help in this case?

0 投票
1 回答
106 浏览

django - docker容器中的django-celery netcat垃圾邮件

我正在尝试在一个单独的 docker 容器中与 django/redis docker 设置一起运行 celery。

当我运行时docker-compose up -d --build,我的日志通过docker-compose logs --tail=0 --follow显示celery_1容器反复向控制台发送垃圾邮件

通过从中删除 celery 服务docker-compose.yamldocker exec -it backend_1 celery -A proj -l infodocker-compose up -d --build. 如何在 内复制此手动过程的功能docker-compose.yaml

我的docker-compose.yaml样子

0 投票
1 回答
558 浏览

django - 我们如何在 django-redis 中使用 redis 管道?

我想在 django-redis 中使用Redis 管道(执行多个命令)。

我们可以在 Redis 中使用 multi 和 exec命令,但我们如何在 django-redis 中使用?

一种解决方案是:

我有哈希键列表,我想使用哈希键获取所有哈希。

在每个迭代命令发送到 redis 服务器以逐个获取哈希。

这不是一个好主意,我们可以使用 redis 管道。但是我如何在 django-redis 中实现 Redis 管道?

0 投票
1 回答
487 浏览

django - Django Rest 框架:Pickle 响应

我想要做的是构建一个自定义版本,cache_page让我可以更好地控制缓存键,但我什至被我的响应的基本缓存卡住了:

我的相关部分settings.py设置为:

当我尝试调用端点时,我得到:

然后,如果我将行更改为:

我得到:

(如果我设置了渲染器,它会抱怨接受的媒体,然后是上下文并最终失败TypeError: 'bytes' object is not callable

尽管 API 调用本身在没有缓存的情况下也能正常工作。

cache_page实际上工作正常,所以我知道可以缓存响应,但我不知道我错过了什么。