问题标签 [redis-py]

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 投票
11 回答
38678 浏览

python - 非阻塞 Redis pubsub 可能吗?

我想使用 redis 的 pubsub 来传输一些消息,但不想被阻止使用listen,如下面的代码:

最后一for节将阻塞。我只想检查给定频道是否有数据,我该如何完成?有没有check类似的方法?

0 投票
1 回答
2224 浏览

python - Redis“响应错误:未知命令'502'”

使用 redis-py(2.8.0 版)时,我遇到了这个奇怪的错误(如下)。有谁知道为什么会发生这种情况?

Redis 服务器版本:2.2.12,尝试设置 redis-server 使用 unix socket 和 TCP,还尝试将 redis-py 模块降级到 2.4,总是得到同样的错误。

使用 memcached 缓存引擎,我看不到这样的东西。

谢谢。

0 投票
2 回答
1977 浏览

python - redis-py“连接错误:远程端关闭套接字”

使用 redis-py 的 PubSub 类,我有时会遇到以下异常:

什么会导致这样的事件?
如果我捕捉到这个异常,什么是合理的处理逻辑?重试listen()会徒劳吗?

问而不是简单地尝试的原因是我不知道如何重现这个问题。这种情况很少见,但很有害,因此我必须在此错误再次发生之前创建一些逻辑。

0 投票
1 回答
996 浏览

python - How to prevent race condition when using redis to implement flow control?

We have a server that gets cranky if it gets too many users logging in at the same time (meaning less than 7 seconds apart). Once the users are logged in, there is no problem (one or two logging in at the same time is also not a problem, but when 10-20 try the entire server goes into a death spiral sigh).

I'm attempting to write a page that will hold onto users (displaying an animated countdown etc.) and let them through 7 seconds apart. The algorithm is simple

  1. fetch the timestamp (t) when the last login happened
  2. if t+7 is in the past start the login and store now() as the new timestamp
  3. if t+7 is in the future, store it as the new timestamp, wait until t+7, then start the login.

A straight forward python/redis implementation would be:

The race condition here is obvious, many processes can be at the my_start = line simultaneously. How can I solve this using redis?

I've tried the redis-py pipeline functionality, but of course that doesn't get an actual value until in the r.get() call...

0 投票
2 回答
2894 浏览

python - Redis 页面计数器

我正在编写一个烧瓶应用程序,它将计算来自多个网站的页面浏览量。我决定使用 Redis 和 Redispy,但我很难决定如何构建。最初我试图有这样的东西

我希望能够按日期或站点名称查询并显示计数值。我尝试使用 .keys 按日期或站点名称进行查询,但 REDIS 文档说要避免使用密钥。
所以我想也许我可以使用redis哈希:

最终,我希望能够按站点名称、日期或显示所有日期的所有值在站点计数器上运行报告。我似乎找不到合适的结构来让我得到我想要的。

任何建议将不胜感激!我以前没有使用过 REDIS。

0 投票
1 回答
1048 浏览

redis-py - redis-py 引发 AttributeError

在什么情况下会redis-py引发以下AttributeError异常?
不是redis-py设计为仅引发redis.exceptions.RedisError基于异常的吗?
什么是合理的处理逻辑?

0 投票
2 回答
428 浏览

pyramid - 使用 gevent-socketio paste 集成导致我的应用程序无响应

我正在编写一个依赖gevent-socketioredis的 Pyramid 应用程序。但是,我注意到当我离开建立 socket.io 连接的视图时,我的应用程序变得无响应。为了尝试隔离问题,我创建了另一个简单的应用程序,发现使用pubsub.listen()导致了问题:

我启动应用程序的方式如下:

但是,如果使用示例中的serve.py,我只能让我的应用程序工作:

不幸的是,这对于开发来说相当麻烦,因为我失去了--reload功能。理想情况下,我想使用paste 集成入口点

我注意到的另一件事是gevent-sockectio Paster 集成不会猴子修补 gevent,而示例 server.py 可以。

如何让 pserve --reload 与 gevent-socketio 一起使用?

我已将我的测试应用程序上传到 github:https ://github.com/m-martinez/iotest

0 投票
1 回答
255 浏览

django - 在 django 视图之间共享 redis 连接

在调试时,我注意到每个访问 django 视图的 redis 都使用单独的 redis 连接。

为什么会这样?
django 是否为每个视图使用一个线程,而 redis-py 是否为每个线程创建一个连接?或者是其他什么原因?

如何让 django 在各种视图之间共享单个连接?

0 投票
1 回答
2971 浏览

python - python redis pubsub阻塞

在上面的代码中我如何停止线程?

下面我有一个示例代码向您展示我想要的内容:

因此,当属性 stop == True 时,线程将退出循环并完成。那可能吗?如果不是,有什么替代方案?

0 投票
1 回答
122 浏览

python - Redisco ListField unicode 保存错误但验证为真

加载时:</p>

在 redis-cli 中:

那么造成这种情况的原因是什么?