当前位置: 首页 > 知识库问答 >
问题:

如何在redis-py中指定">"

司徒经纶
2023-03-14

我在redis stream文档中看到了这一点,它说:

是时候试着用消费者群体来阅读一些东西了:

> XREADGROUP GROUP mygroup Alice COUNT 1 STREAMS mystream >
1) 1) "mystream"
   2) 1) 1) 1526569495631-0
         2) 1) "message"
            2) "apple"

XREADGROUP回复与XREAD回复一样。请注意,尽管上面提供了一个组,但它声明我希望使用消费者组mygroup从流中读取数据,我是消费者Alice。每次使用者对使用者组执行操作时,都必须指定其名称,以便在组内唯一标识此使用者。

在上面的命令行中还有另一个非常重要的细节,在强制流选项之后,为密钥mystream请求的ID是特殊ID

我正在尝试指定“

当我查看这里的文档时,我在streams中没有看到任何让我这么做的参数。具体而言,我正在尝试:

>>> r.xreadgroup(mygroupname,myconsumer,{mystream : ">"},1)
[] # oh no, empty. WHY?!
# 
# even though
>>> r.xread({mystream: '1561950326849-0'}, count=1)
[[b'stuff-returned-successfully.]]

我错过了什么?为什么我不能指定一个“

共有1个答案

严锐
2023-03-14

在这个问题中,你错误地假设你有 /unseen/信息。该命令应该有效,但如果您已经看过所有消息一次,则不会有效。

尝试

# make sure you have not seen anything in your stream by resetting last seen to 0
>>> r.xgroup_setid(mystream,mygroupname,0) # RESET ALL

现在

r.xreadgroup(mygroupname,myconsumer,{mystream : ">"},1)

很好。

 类似资料:
  • redis-py 这是 Redis 目前最成熟的 Python 客户端开发包。 示例代码: >>> import redis>>> r = redis.Redis(host='localhost', port=6379, db=0)>>> r.set('foo', 'bar')   # or r['foo'] = 'bar'True>>> r.get('foo')   # or r['foo']'bar'

  • 问题内容: hmset函数可以设置每个字段的值,但是我发现,如果值本身是一个复杂的结构化对象,则从hget返回的值是一个序列化的字符串,而不是原始对象 例如 i的类型是字符串,而不是python对象,除了手动解析每个字段外,还有什么方法可以解决此问题? 问题答案: 您无法在Redis中创建嵌套结构,这意味着您无法(例如)在本地Redis哈希图中存储本地Redis列表。 如果确实需要嵌套结构,则可能

  • 如何使用Redis在spring boot rest应用程序中从15-25个符号指定“ID”的长度约束? 使现代化 我尝试将类型更改为并为符号长度限制设置,但它不起作用(似乎注释被忽略)在Redis db使用范围内: 我也尝试过使用自定义验证器,同样的行为——在使用Redis db时,它似乎被忽略了: 验证器: 型号: 在调试模式下,我无法捕获验证程序中的任何断点。 在两次尝试中,我都可以保存任意

  • 在Redis-Py中,我如何计算与模式匹配的键数?我发现了一些方法scan、scan_iter,但它们使用键名的模式进行搜索。 我需要的示例:

  • 问题内容: 我认为这在几个月前就可以解决了。常规命令行泊坞窗: 可以正常工作,但是我无法在docker-py中工作: ..总是告诉我,新的不存在。应该如何使用docker-py完成? 问题答案: 以下是进行卷绑定的当前工作方式:

  • 问题内容: 一点背景: PEP 8是 Python代码 的 样式指南 。它包含所有python程序员应遵循的约定。 根据PEP 8,pep8.py是一个(非常有用的)脚本,用于检查给定python脚本的代码格式。 Eclipse是一个很棒的IDE。有了Pydev扩展,它可以用于开发Python 在编写脚本时,我手动运行pep8.py,但是对于较大的项目,我更喜欢使用Eclipse。将pep8.py