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

python - redis 获取函数返回无

我正在开发一个与 redis 交互的烧瓶应用程序。此应用程序部署在 heroku 上,并添加了 redis。

当我对交互进行一些测试时,我无法获得刚刚设置的键值对。相反,我总是将 None 作为返回类型。这是示例:

如上图,test route会打印None,表示没有设置值。我很困惑。当我在本地浏览器上测试服务器时,它可以工作,当我尝试使用 heroku python shell 与 redis 交互时,它也可以工作。

使用 python shell 进行测试:

我现在很困惑。我应该如何使用 Flask 与 redis 正确交互?

0 投票
1 回答
219 浏览

python - 无法识别 Redis 上的 HyperLogLog 实现

我试图在这里运行一个简单的代码,它只是使用 PFADD 操作将一个值插入到一个键中,但我得到了这个错误:

响应错误:未知命令“PFADD”

我的代码如下:

  • Python版本:2
  • 熊猫版本:0.19.0
  • Redis 版本:2.10.5`

我在这里错过了什么吗?

0 投票
1 回答
1487 浏览

python - NGINX 背后的 AWS Redis + uWSGI - 高负载

我正在使用 uwsgi + nginx 并使用 aws elasticache (redis 2.8.24) 运行 python 应用程序 (flask + redis-py)。

在尝试改善我的应用程序响应时间时,我注意到在高负载下(每秒 500 个请求/使用 loader.io 持续 30 秒)我丢失了请求(对于这个测试,我只使用一个没有负载的服务器平衡器,1 个 uwsgi 实例,4 个进程,用于测试)。 压力测试

我挖得更深一点,发现在这种负载下,对 ElastiCache 的一些请求很慢。例如:

  • 正常负载:cache_set 时间 0.000654935836792
  • 重负载:cache_set time 0.0122258663177 这不会发生在所有请求中,只是随机发生..

我的 AWS ElastiCache 基于 cache.m4.xlarge 上的 2 个节点(默认 AWS 配置设置)。查看过去 3 小时内连接的当前客户端: aws elasticache 客户端

我认为这没有意义,因为目前有 14 台服务器(其中 8 台具有 XX RPS 的高流量使用此集群),我希望看到更高的客户端率。

uWSGI 配置(版本 2.0.5.1)

Nginx 只是一个使用 unix 套接字的 uWSGI 网络代理。

这就是我打开与 redis 的连接的方式:

这就是我设置值的方式,例如:

这就是我获得价值的方式:

版本:

  • uWSGI:2.0.5.1
  • 烧瓶:0.11.1
  • redis-py:2.10.5
  • 雷迪斯:2.8.24

所以得出结论:

  1. 为什么如果连接了 14 台服务器,每台服务器有 4 个进程,并且每个服务器都打开到 redis 集群中的 8 个不同数据库的连接,AWS 客户端的数量会很低
  2. 是什么导致请求响应时间攀升?
  3. 非常感谢有关重负载下 ElastiCache 和/或 uWSGI 性能的任何建议
0 投票
1 回答
145 浏览

redis - 使用最新版本启动 redis-server

我已经下载了具有以下功能的 Redis 3.2.5,PFADD并且我打算使用它。最初,我曾经在我的根目录中简单地键入 redis-server,它曾经在 2.6.9 版本中启动。

经过一番搜索,我发现转到cd redis.3.2.5/然后运行相同的命令它会起作用,并且当时它确实从 3.2.5 开始,但是现在当我再次运行它时,它又回到了 2.6.9。

有任何想法吗?

0 投票
1 回答
483 浏览

redis - 按分数排序的修剪

在一个 Django 应用程序中,我使用 redis 来维护一个全局排序集,其中用户 ID 与自纪元以来的当前时间得分一起存储。

每 11 分钟后,我将运行一个异步任务,将排序集修剪为仅在前 10 分钟内保存的值,.

下面会做到这一点吗?我不确定边缘情况(例如,这会确保所有旧值都被删除或会泄漏等):

0 投票
1 回答
2549 浏览

python - 将 Redis 与 Sentinel 和 redis-py 一起使用时如何故障转移到新的主节点?

订阅 Sentinel 故障转移,Channel 的名称是什么,如何在订阅的函数中检测到需要刷新 master?

我有一个使用 Redis Sentinel 实现高可用性和故障转移的多节点 Redis 设置。

我需要设置一个 Pub/Sub 到 Redis 来检测 Redis Master 何时失败并且系统选择了一个新的 Master。

0 投票
1 回答
1940 浏览

python - 将元组的python列表存储在redis排序集中,其中元组的第二个元素用作分数

我有一个 Python 元组列表,如下所示:

如何将其传递到 redis 排序集中,以便将每个元组中的第二个值用作分数?我试过zadd(sorted_set, *lst)了,但我得到了错误value is not a valid float

0 投票
1 回答
691 浏览

redis - redis-py 是否会自动将 evalsha 用于注册脚本?

当我将 Lua 脚本注册到 redis 客户端时:

然后使用默认客户端运行脚本:

这会在内部自动使用 evalsha 还是每次都将整个脚本发送到服务器?

0 投票
1 回答
5613 浏览

python - 使用 Flask 获取 int 列表并将这些值作为端点返回

我想以这样一种方式使用 Flask,我可以简单地传递 use localhost/data/?user=[123,234,345] ,它会在正文中返回这些值。

这是我尝试过的:

我究竟做错了什么?

0 投票
2 回答
1414 浏览

python - 在 redis-py (redis ver 2.8.4) 中执行 zadd 时使用 nx 选项

我在我的一个 python 项目中使用 redis 2.8.4。在特定的排序集中,我想zadd使用该nx选项。redis-pynx文档中没有记录该选项,并且根据文档,它仅适用于 redis 3.0.2 或更高版本。

那么我可以遵循什么替代模式来模拟nx选项zadd