Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我读redis stream时得到(零)_Redis_Redis Streams - Fatal编程技术网

为什么我读redis stream时得到(零)

为什么我读redis stream时得到(零),redis,redis-streams,Redis,Redis Streams,在我的流中,我有1条挂起的消息: redis[7]> XREADGROUP GROUP symfony consumer COUNT 1 STREAMS messages 0 1) 1) "messages" 2) 1) 1) "1592850947048-0" 2) (nil) redis[7]> XPENDING messages symfony 1) (integer) 1 2) "1592850947

在我的流中,我有1条挂起的消息:

redis[7]> XREADGROUP GROUP symfony consumer COUNT 1 STREAMS messages 0
1) 1) "messages"
   2) 1) 1) "1592850947048-0"
         2) (nil)
redis[7]> XPENDING messages symfony 
1) (integer) 1
2) "1592850947048-0"
3) "1592850947048-0"
4) 1) 1) "consumer"
      2) "1"
不可能是(零),但还是。。 我看到了新消息:

redis[7]> XREADGROUP GROUP symfony consumer COUNT 1 STREAMS messages >
1) 1) "messages"
   2) 1) 1) "1593141769417-0"
         2) 1) "message"
            2) "s:726:\"{\"body\":\"O:36:\\\\\\\"Symfony\\\\\\\\Component\\\\\\\\Messenger\\\\\\\\Envelope\\\\\\\":2:{s:44:\\\\\\\"\\\\0Symfony\\\\\\\\Component\\\\\\\\Messenger\\\\\\\\Envelope\\\\0stamps\\\\\\\";a:1:{s:46:\\\\\\\"Symfony\\\\\\\\Component\\\\\\\\Messenger\\\\\\\\Stamp\\\\\\\\BusNameStamp\\\\\\\";a:1:{i:0;O:46:\\\\\\\"Symfony\\\\\\\\Component\\\\\\\\Messenger\\\\\\\\Stamp\\\\\\\\BusNameStamp\\\\\\\":1:{s:55:\\\\\\\"\\\\0Symfony\\\\\\\\Component\\\\\\\\Messenger\\\\\\\\Stamp\\\\\\\\BusNameStamp\\\\0busName\\\\\\\";s:21:\\\\\\\"messenger.bus.default\\\\\\\";}}}s:45:\\\\\\\"\\\\0Symfony\\\\\\\\Component\\\\\\\\Messenger\\\\\\\\Envelope\\\\0message\\\\\\\";O:26:\\\\\\\"App\\\\\\\\Bus\\\\\\\\Message\\\\\\\":2:{s:32:\\\\\\\"\\\\0App\\\\\\\\Bus\\\\\\\\Message\\\\0type\\\\\\\";i:6;s:35:\\\\\\\"\\\\0App\\\\\\\\Bus\\\\\\\\Message\\\\0payload\\\\\\\";a:1:{s:7:\\\\\\\"eventId\\\\\\\";i:83787;}}}\",\"headers\":[]}\";"
redis[7]> XPENDING messages symfony
1) (integer) 2
2) "1592850947048-0"
3) "1593141769417-0"
4) 1) 1) "consumer"
      2) "2"
新消息不是空的,但如果我阅读消息,则两者都是(nil)

为什么?

这是redis stream的正常行为吗?
Redis删除旧的消息正文(设置为
nil
),即使消息接收到一些消费者。

maxgu,如果您可以向我们展示您使用的XADD命令,这将非常有用。我不知道我的PHP Redis客户端是如何做到这一点的,我调用
$this->connection->XADD(“messages”、“*”、['message'=>$message]、$this->->maxEntries,true)我想它会发送:
XADD messages MAXLEN~50000*message“s:726:”{“body\:\”O:36:“Symfony…”
我也有类似的问题。在这里报告,但没有修复
redis[7]> XREADGROUP GROUP symfony consumer COUNT 2 STREAMS messages 0
1) 1) "messages"
   2) 1) 1) "1592850947048-0"
         2) (nil)
      2) 1) "1593141769417-0"
         2) (nil)
127.0.0.1:6379[7]> XADD test-1 MAXLEN 3 * test-field-1 test-message-1
"1593427016468-0"
127.0.0.1:6379[7]> XADD test-1 MAXLEN 3 * test-field-2 test-message-2
"1593427036073-0"
127.0.0.1:6379[7]> XADD test-1 MAXLEN 3 * test-field-3 test-message-3
"1593427043133-0"
127.0.0.1:6379[7]> XGROUP CREATE test-1 test-group 0
OK
127.0.0.1:6379[7]> XREADGROUP GROUP test-group consumer COUNT 1 STREAMS test-1 >
1) 1) "test-1"
   2) 1) 1) "1593427016468-0"
         2) 1) "test-field-1"
            2) "test-message-1"
127.0.0.1:6379[7]> XADD test-1 MAXLEN 3 * test-field-4 test-message-4
"1593427272729-0"
127.0.0.1:6379[7]> XREADGROUP GROUP test-group consumer COUNT 1 STREAMS test-1 0
1) 1) "test-1"
   2) 1) 1) "1593427016468-0"
         2) (nil)