DOCKER
docker run -it --rm --net host --name redis1 redis
docker exec -it redis1 redis-cli
XREADGROUP
XGROUP CREATE mystream mygroup $ MKSTREAM
XADD mystream * message apple
XADD mystream * message orange
XADD mystream * message strawberry
XGROUP CREATE mystream grp1 0
XREADGROUP GROUP grp1 Bob COUNT 2 STREAMS mystream >
XGROUP CREATE mystream grp2 0
XREADGROUP GROUP grp2 Bobiy COUNT 2 STREAMS mystream >
The special ID
>
. This special ID is only valid in the context of consumer groups, and it means: messages never delivered to other consumers so far.
XREAD
XADD mystream * message newcoronavirus
XADD mystream * message nextvirus
XREAD BLOCK 0 STREAMS mystream $
The special ID
$
. This special ID means that XREAD should use as last ID the maximum ID already stored in the stream mystream
, so that we will receive only new messages, starting from the time we started listening. This is similar to the tail -f
Unix command in some way.
Use ConsumerGroups for FANOUT
Use XREAD for P2P