Redis Stream - ืืžื™ื ื•ืช ื•ืžื“ืจื’ื™ื•ืช ืฉืœ ืžืขืจื›ื•ืช ื”ื”ื•ื“ืขื•ืช ืฉืœืš

Redis Stream - ืืžื™ื ื•ืช ื•ืžื“ืจื’ื™ื•ืช ืฉืœ ืžืขืจื›ื•ืช ื”ื”ื•ื“ืขื•ืช ืฉืœืš

Redis Stream ื”ื•ื ืกื•ื’ ื ืชื•ื ื™ื ืžื•ืคืฉื˜ ื—ื“ืฉ ืฉื”ื•ืฆื’ ื‘-Redis ืขื ื’ืจืกื” 5.0
ืžื‘ื—ื™ื ื” ืงื•ื ืกืคื˜ื•ืืœื™ืช, Redis Stream ื”ื™ื ืจืฉื™ืžื” ืฉืืœื™ื” ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืขืจื›ื™ื. ืœื›ืœ ืขืจืš ื™ืฉ ืžื–ื”ื” ื™ื™ื—ื•ื“ื™. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืžื–ื”ื” ื ื•ืฆืจ ืื•ื˜ื•ืžื˜ื™ืช ื•ื›ื•ืœืœ ื—ื•ืชืžืช ื–ืžืŸ. ืœื›ืŸ, ืืชื” ื™ื›ื•ืœ ืœื‘ืฆืข ืฉืื™ืœืชื•ืช ื‘ื˜ื•ื•ื—ื™ ืจืฉื•ืžื•ืช ืœืื•ืจืš ื–ืžืŸ, ืื• ืœืงื‘ืœ ื ืชื•ื ื™ื ื—ื“ืฉื™ื ื›ืฉื”ื ืžื’ื™ืขื™ื ืœื–ืจื, ื‘ื“ื•ืžื” ืœืคืงื•ื“ืช Unix "tail -f" ืงื•ืจืืช ืงื•ื‘ืฅ ื™ื•ืžืŸ ื•ืงื•ืคื ื‘ื–ืžืŸ ื”ื”ืžืชื ื” ืœื ืชื•ื ื™ื ื—ื“ืฉื™ื. ืฉื™ื ืœื‘ ืฉืœืงื•ื—ื•ืช ืžืจื•ื‘ื™ื ื™ื›ื•ืœื™ื ืœื”ืื–ื™ืŸ ืœืฉืจืฉื•ืจ ื‘ื•-ื–ืžื ื™ืช, ื‘ื“ื™ื•ืง ื›ืคื™ ืฉืชื”ืœื™ื›ื™ "tail -f" ืจื‘ื™ื ื™ื›ื•ืœื™ื ืœืงืจื•ื ืงื•ื‘ืฅ ื‘ื•-ื–ืžื ื™ืช ืžื‘ืœื™ ืœื”ืชื ื’ืฉ ื–ื” ืขื ื–ื”.

ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื›ืœ ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืกื•ื’ ื”ื ืชื•ื ื™ื ื”ื—ื“ืฉ, ื”ื‘ื” ื ืกืชื›ืœ ื‘ืžื”ื™ืจื•ืช ืขืœ ืžื‘ื ื™ Redis ื”ืงื™ื™ืžื™ื ื•ืชื™ืงื™ื ื”ืžืฉื›ืคืœื™ื ื—ืœืงื™ืช ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ Redis Stream.

Redis PUB/SUB

Redis Pub/Sub ื”ื™ื ืžืขืจื›ืช ื”ื•ื“ืขื•ืช ืคืฉื•ื˜ื” ืฉื›ื‘ืจ ืžื•ื‘ื ื™ืช ื‘ื—ื ื•ืช ื”ืžืคืชื— ืฉืœืš. ืขื ื–ืืช, ืœืคืฉื˜ื•ืช ื™ืฉ ืžื—ื™ืจ:

  • ืื ื”ืžื•ืฆื™ื ืœืื•ืจ ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ื ื›ืฉืœ, ืื– ื”ื•ื ืžืื‘ื“ ืืช ื›ืœ ื”ืžื ื•ื™ื™ื ืฉืœื•
  • ื”ืžื•ืฆื™ื ืœืื•ืจ ืฆืจื™ืš ืœื“ืขืช ืืช ื”ื›ืชื•ื‘ืช ื”ืžื“ื•ื™ืงืช ืฉืœ ื›ืœ ื”ืžื ื•ื™ื™ื ืฉืœื•
  • ืžืคืจืกื ืขืœื•ืœ ืœื”ืขืžื™ืก ืขืœ ื”ืžื ื•ื™ื™ื ืฉืœื• ื‘ืขื‘ื•ื“ื” ืื ื”ื ืชื•ื ื™ื ืžืชืคืจืกืžื™ื ืžื”ืจ ื™ื•ืชืจ ืžืžื” ืฉื”ื ืžืขื•ื‘ื“ื™ื
  • ื”ื”ื•ื“ืขื” ื ืžื—ืงืช ืžื”ืžืื’ืจ ืฉืœ ื”ืžืคืจืกื ืžื™ื“ ืœืื—ืจ ื”ืคืจืกื•ื, ืœืœื ืงืฉืจ ืœื›ืžื” ืžื ื•ื™ื™ื ื”ื™ื ื ืžืกืจื” ื•ื›ืžื” ืžื”ืจ ื”ื ื”ืฆืœื™ื—ื• ืœืขื‘ื“ ืืช ื”ื”ื•ื“ืขื” ื”ื–ื•.
  • ื›ืœ ื”ืžื ื•ื™ื™ื ื™ืงื‘ืœื• ืืช ื”ื”ื•ื“ืขื” ื‘ื• ื–ืžื ื™ืช. ื”ืžื ื•ื™ื™ื ืขืฆืžื ื—ื™ื™ื‘ื™ื ืื™ื›ืฉื”ื• ืœื”ืกื›ื™ื ื‘ื™ื ื™ื”ื ืขืœ ืกื“ืจ ื”ืขื™ื‘ื•ื“ ืฉืœ ืื•ืชื” ื”ื•ื“ืขื”.
  • ืื™ืŸ ืžื ื’ื ื•ืŸ ืžื•ื‘ื ื” ืœืืฉืจ ืฉืžื ื•ื™ ืขื™ื‘ื“ ื”ื•ื“ืขื” ื‘ื”ืฆืœื—ื”. ืื ืžื ื•ื™ ืžืงื‘ืœ ื”ื•ื“ืขื” ื•ืงื•ืจืก ื‘ืžื”ืœืš ื”ืขื™ื‘ื•ื“, ื”ืžืคืจืกื ืœื ื™ื™ื“ืข ืขืœ ื›ืš.

ืจืฉื™ืžืช Redis

Redis List ื”ื•ื ืžื‘ื ื” ื ืชื•ื ื™ื ื”ืชื•ืžืš ื‘ื—ืกื™ืžืช ืคืงื•ื“ื•ืช ืงืจื™ืื”. ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ื•ืœืงืจื•ื ื”ื•ื“ืขื•ืช ืžืชื—ื™ืœืช ืื• ืกื•ืฃ ื”ืจืฉื™ืžื”. ื‘ื”ืชื‘ืกืก ืขืœ ื”ืžื‘ื ื” ื”ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืžื—ืกื ื™ืช ืื• ืชื•ืจ ื˜ื•ื‘ ืœืžืขืจื›ืช ื”ืžื‘ื•ื–ืจืช ืฉืœืš, ื•ื‘ืจื•ื‘ ื”ืžืงืจื™ื ื–ื” ื™ืกืคื™ืง. ื”ื”ื‘ื“ืœื™ื ื”ืขื™ืงืจื™ื™ื ืž-Redis Pub/Sub:

  • ื”ื”ื•ื“ืขื” ืžื•ืขื‘ืจืช ืœืœืงื•ื— ืื—ื“. ื”ืœืงื•ื— ื”ืจืืฉื•ืŸ ืฉื ื—ืกื ืœืงืจื™ืื” ื™ืงื‘ืœ ืืช ื”ื ืชื•ื ื™ื ืชื—ื™ืœื”.
  • ืงืœื™ื ื˜ ื—ื™ื™ื‘ ืœื™ื–ื•ื ืืช ืคืขื•ืœืช ื”ืงืจื™ืื” ืขื‘ื•ืจ ื›ืœ ื”ื•ื“ืขื” ื‘ืขืฆืžื•. ืจืฉื™ืžื” ืœื ื™ื•ื“ืขืช ื“ื‘ืจ ืขืœ ืœืงื•ื—ื•ืช.
  • ื”ื•ื“ืขื•ืช ืžืื•ื—ืกื ื•ืช ืขื“ ืฉืžื™ืฉื”ื• ืงื•ืจื ืื•ืชืŸ ืื• ืžื•ื—ืง ืื•ืชืŸ ื‘ืžืคื•ืจืฉ. ืื ืชื’ื“ื™ืจ ืืช ืฉืจืช Redis ืœืฉื˜ื•ืฃ ื ืชื•ื ื™ื ืœื“ื™ืกืง, ืื–ื™ ื”ืืžื™ื ื•ืช ืฉืœ ื”ืžืขืจื›ืช ืขื•ืœื” ื‘ืื•ืคืŸ ื“ืจืžื˜ื™.

ืžื‘ื•ื ืœืกื˜ืจื™ืžื™ื ื’

ื”ื•ืกืคืช ืขืจืš ืœื–ืจื

ืงื‘ื•ืฆื” XADD ืžื•ืกื™ืฃ ืขืจืš ื—ื“ืฉ ืœื–ืจื. ืจืฉื•ืžื” ื”ื™ื ืœื ืจืง ืžื—ืจื•ื–ืช, ื”ื™ื ืžื•ืจื›ื‘ืช ืžื–ื•ื’ ืžืคืชื—-ืขืจืš ืื—ื“ ืื• ื™ื•ืชืจ. ืœืคื™ื›ืš, ื›ืœ ืขืจืš ื›ื‘ืจ ืžื•ื‘ื ื” ื•ื“ื•ืžื” ืœืžื‘ื ื” ืฉืœ ืงื•ื‘ืฅ CSV.

> XADD mystream * sensor-id 1234 temperature 19.8
1518951480106-0

ื‘ื“ื•ื’ืžื” ืฉืœืžืขืœื”, ืื ื• ืžื•ืกื™ืคื™ื ืฉื ื™ ืฉื“ื•ืช ืœื–ืจื ืขื ื”ืฉื (ืžืคืชื—) "mystream": "ื—ื™ื™ืฉืŸ ืžื–ื”ื”" ื•-"ื˜ืžืคืจื˜ื•ืจื”" ืขื ื”ืขืจื›ื™ื "1234" ื•-"19.8", ื‘ื”ืชืืžื”. ื‘ืชื•ืจ ื”ืืจื’ื•ืžื ื˜ ื”ืฉื ื™, ื”ืคืงื•ื“ื” ืœื•ืงื—ืช ืžื–ื”ื” ืฉื™ื•ืงืฆื” ืœืขืจืš - ืžื–ื”ื” ื–ื” ืžื–ื”ื” ื‘ืื•ืคืŸ ื™ื™ื—ื•ื“ื™ ื›ืœ ืขืจืš ื‘ื–ืจื. ืขื ื–ืืช, ื‘ืžืงืจื” ื”ื–ื” ืขื‘ืจื ื• * ื›ื™ ืื ื—ื ื• ืจื•ืฆื™ื ืฉ-Redis ื™ืคื™ืง ืœื ื• ืžื–ื”ื” ื—ื“ืฉ. ื›ืœ ืชืขื•ื“ืช ื–ื”ื•ืช ื—ื“ืฉื” ืชื’ื“ืœ. ืœื›ืŸ, ืœื›ืœ ืขืจืš ื—ื“ืฉ ื™ื”ื™ื” ืžื–ื”ื” ื’ื‘ื•ื” ื™ื•ืชืจ ื‘ื™ื—ืก ืœืขืจื›ื™ื ืงื•ื“ืžื™ื.

ืคื•ืจืžื˜ ืžื–ื”ื”

ืžื–ื”ื” ื”ื›ื ื™ืกื” ืฉื”ื•ื—ื–ืจ ืขืœ ื™ื“ื™ ื”ืคืงื•ื“ื” XADD, ืžื•ืจื›ื‘ ืžืฉื ื™ ื—ืœืงื™ื:

{millisecondsTime}-{sequenceNumber}

ืžื™ืœื™-ืฉื ื™ื•ืช ื–ืžืŸ - ื–ืžืŸ ื™ื•ื ื™ืงืก ื‘ืืœืคื™ื•ืช ืฉื ื™ื•ืช (ื–ืžืŸ ืฉืจืช Redis). ืขื ื–ืืช, ืื ื”ืฉืขื” ื”ื ื•ื›ื—ื™ืช ื–ื”ื” ืื• ืงื˜ื ื” ืžื”ื–ืžืŸ ืฉืœ ื”ื”ืงืœื˜ื” ื”ืงื•ื“ืžืช, ืื–ื™ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื—ื•ืชืžืช ื”ื–ืžืŸ ืฉืœ ื”ื”ืงืœื˜ื” ื”ืงื•ื“ืžืช. ืœื›ืŸ, ืื ื–ืžืŸ ื”ืฉืจืช ื—ื•ื–ืจ ืื—ื•ืจื” ื‘ื–ืžืŸ, ื”ืžื–ื”ื” ื”ื—ื“ืฉ ืขื“ื™ื™ืŸ ื™ืฉืžื•ืจ ืขืœ ืžืืคื™ื™ืŸ ื”ืชื•ืกืคืช.

ืจืฆืฃ ืžืกืคืจ ืžืฉืžืฉ ืขื‘ื•ืจ ืจืฉื•ืžื•ืช ืฉื ื•ืฆืจื• ื‘ืื•ืชื” ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”. ืจืฆืฃ ืžืกืคืจ ื™ื•ื’ื“ืœ ื‘-1 ื‘ื™ื—ืก ืœืขืจืš ื”ืงื•ื“ื. ื‘ื’ืœืœ ื” ืจืฆืฃ ืžืกืคืจ ื”ื•ื ื‘ื’ื•ื“ืœ 64 ืกื™ื‘ื™ื•ืช, ืื– ื‘ืคื•ืขืœ ืœื ืฆืจื™ืš ืœื”ื™ืชืงืœ ื‘ืžื’ื‘ืœื” ืขืœ ืžืกืคืจ ื”ืจืฉื•ืžื•ืช ืฉื ื™ืชืŸ ืœื”ืคื™ืง ืชื•ืš ืืœืคื™ืช ืฉื ื™ื™ื” ืื—ืช.

ื”ืคื•ืจืžื˜ ืฉืœ ืžื–ื”ื™ื ื›ืืœื” ืขืฉื•ื™ ืœื”ื™ืจืื•ืช ืžื•ื–ืจ ื‘ืžื‘ื˜ ืจืืฉื•ืŸ. ืงื•ืจื ื—ืกืจ ืืžื•ืŸ ืขืฉื•ื™ ืœืชื”ื•ืช ืžื“ื•ืข ื”ื–ืžืŸ ื”ื•ื ื—ืœืง ืžื”ืžื–ื”ื”. ื”ืกื™ื‘ื” ื”ื™ื ืฉื–ืจืžื™ Redis ืชื•ืžื›ื™ื ื‘ืฉืื™ืœืชื•ืช ื˜ื•ื•ื— ืœืคื™ ืžื–ื”ื”. ืžื›ื™ื•ื•ืŸ ืฉื”ืžื–ื”ื” ืžืฉื•ื™ืš ืœื–ืžืŸ ืฉื‘ื• ื ื•ืฆืจื” ื”ืจืฉื•ืžื”, ื”ื“ื‘ืจ ืžืืคืฉืจ ืœื‘ืฆืข ืฉืื™ืœืชื•ืช ื‘ื˜ื•ื•ื—ื™ ื–ืžืŸ. ื ืกืชื›ืœ ืขืœ ื“ื•ื’ืžื” ืกืคืฆื™ืคื™ืช ื›ืืฉืจ ื ืกืชื›ืœ ืขืœ ื”ืคืงื•ื“ื” XRANGE.

ืื ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ื”ืžืฉืชืžืฉ ืฆืจื™ืš ืœืฆื™ื™ืŸ ืžื–ื”ื” ืžืฉืœื•, ืืฉืจ, ืœืžืฉืœ, ืžืฉื•ื™ืš ืœืžืขืจื›ืช ื—ื™ืฆื•ื ื™ืช ื›ืœืฉื”ื™, ืื– ื ื•ื›ืœ ืœื”ืขื‘ื™ืจ ืื•ืชื• ืœืคืงื•ื“ื” XADD ื‘ืžืงื•ื * ื›ืคื™ ืฉืžื•ืฆื’ ืœื”ืœืŸ:

> XADD somestream 0-1 field value
0-1
> XADD somestream 0-2 foo bar
0-2

ืฉื™ื ืœื‘ ืฉื‘ืžืงืจื” ื–ื” ืขืœื™ืš ืœืขืงื•ื‘ ื‘ืขืฆืžืš ืื—ืจ ืชื•ืกืคืช ื”ืžื–ื”ื”. ื‘ื“ื•ื’ืžื” ืฉืœื ื•, ื”ืžื–ื”ื” ื”ืžื™ื ื™ืžืœื™ ื”ื•ื "0-1", ื›ืš ืฉื”ืคืงื•ื“ื” ืœื ืชืงื‘ืœ ืžื–ื”ื” ืื—ืจ ื”ืฉื•ื•ื” ืื• ืงื˜ืŸ ืž-"0-1".

> XADD somestream 0-1 foo bar
(error) ERR The ID specified in XADD is equal or smaller than the target stream top item

ืžืกืคืจ ืจืฉื•ืžื•ืช ืœื›ืœ ื–ืจื

ืืคืฉืจ ืœืงื‘ืœ ืืช ืžืกืคืจ ื”ืจืฉื•ืžื•ืช ื‘ื–ืจื ืคืฉื•ื˜ ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื” XLEN. ืœื“ื•ื’ืžื ืฉืœื ื•, ืคืงื•ื“ื” ื–ื• ืชื—ื–ื™ืจ ืืช ื”ืขืจืš ื”ื‘ื:

> XLEN somestream
(integer) 2

ืฉืื™ืœืชื•ืช ื˜ื•ื•ื— - XRANGE ื•-XREVRANGE

ื›ื“ื™ ืœื‘ืงืฉ ื ืชื•ื ื™ื ืœืคื™ ื˜ื•ื•ื—, ืขืœื™ื ื• ืœืฆื™ื™ืŸ ืฉื ื™ ืžื–ื”ื™ื - ื”ื”ืชื—ืœื” ื•ื”ืกื•ืฃ ืฉืœ ื”ื˜ื•ื•ื—. ื”ื˜ื•ื•ื— ื”ืžื•ื—ื–ืจ ื™ื›ืœื•ืœ ืืช ื›ืœ ื”ืืœืžื ื˜ื™ื, ื›ื•ืœืœ ื”ื’ื‘ื•ืœื•ืช. ื™ืฉื ื ื’ื ืฉื ื™ ืžื–ื”ื™ื ืžื™ื•ื—ื“ื™ื "-" ื•-"+", ื›ืœื•ืžืจ ื”ืžื–ื”ื” ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ (ืจืฉื•ืžื” ืจืืฉื•ื ื”) ื•ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ (ืจืฉื•ืžื” ืื—ืจื•ื ื”) ื‘ื–ืจื. ื”ื“ื•ื’ืžื” ืœืžื˜ื” ืชืคืจื˜ ืืช ื›ืœ ืขืจื›ื™ ื”ื–ืจื.

> XRANGE mystream - +
1) 1) 1518951480106-0
   2) 1) "sensor-id"
      2) "1234"
      3) "temperature"
      4) "19.8"
2) 1) 1518951482479-0
   2) 1) "sensor-id"
      2) "9999"
      3) "temperature"
      4) "18.2"

ื›ืœ ืจืฉื•ืžื” ืฉื”ื•ื—ื–ืจื” ื”ื™ื ืžืขืจืš ืฉืœ ืฉื ื™ ืืœืžื ื˜ื™ื: ืžื–ื”ื” ื•ืจืฉื™ืžืช ืฆืžื“ื™ ืžืคืชื—-ืขืจืš. ื›ื‘ืจ ืืžืจื ื• ืฉืžื–ื”ื™ ืจืฉื•ืžื•ืช ืงืฉื•ืจื™ื ืœื–ืžืŸ. ืœื›ืŸ, ืื ื• ื™ื›ื•ืœื™ื ืœื‘ืงืฉ ื˜ื•ื•ื— ืฉืœ ืคืจืง ื–ืžืŸ ืžืกื•ื™ื. ืขื ื–ืืช, ืื ื• ื™ื›ื•ืœื™ื ืœืฆื™ื™ืŸ ื‘ื‘ืงืฉื” ืœื ืืช ื”ืžื–ื”ื” ื”ืžืœื, ืืœื ืจืง ืืช ื–ืžืŸ ื™ื•ื ื™ืงืก, ืชื•ืš ื”ืฉืžื˜ืช ื”ื—ืœืง ื”ืงืฉื•ืจ ืœ ืจืฆืฃ ืžืกืคืจ. ื”ื—ืœืง ื”ืžื•ืฉืžื˜ ืฉืœ ื”ืžื–ื”ื” ื™ื•ื’ื“ืจ ืื•ื˜ื•ืžื˜ื™ืช ืœืืคืก ื‘ืชื—ื™ืœืช ื”ื˜ื•ื•ื— ื•ืœืขืจืš ื”ืžืงืกื™ืžืœื™ ื”ืืคืฉืจื™ ื‘ืกื•ืฃ ื”ื˜ื•ื•ื—. ืœื”ืœืŸ ื“ื•ื’ืžื” ื›ื™ืฆื“ ื ื™ืชืŸ ืœื‘ืงืฉ ื˜ื•ื•ื— ืฉืœ ืฉืชื™ ืืœืคื™ื•ืช ืฉื ื™ื•ืช.

> XRANGE mystream 1518951480106 1518951480107
1) 1) 1518951480106-0
   2) 1) "sensor-id"
      2) "1234"
      3) "temperature"
      4) "19.8"

ื™ืฉ ืœื ื• ืจืง ืขืจืš ืื—ื“ ื‘ื˜ื•ื•ื— ื”ื–ื”, ืื•ืœื ื‘ืžืขืจื›ื•ืช ื ืชื•ื ื™ื ืืžื™ืชื™ื•ืช ื”ืชื•ืฆืื” ื”ืžื•ื—ื–ืจืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืขืฆื•ืžื”. ืžื”ืกื™ื‘ื” ื”ื–ื• XRANGE ืชื•ืžืš ื‘ืืคืฉืจื•ืช COUNT. ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ื”ื›ืžื•ืช, ื ื•ื›ืœ ืคืฉื•ื˜ ืœืงื‘ืœ ืืช N ื”ืจืฉื•ืžื•ืช ื”ืจืืฉื•ื ื•ืช. ืื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืงื‘ืœ ืืช ื”-N ื”ืจืฉื•ืžื•ืช ื”ื‘ืื•ืช (ื“ืคื™ืคื•ืŸ), ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืžื–ื”ื” ื”ืื—ืจื•ืŸ ืฉื”ืชืงื‘ืœ, ืœื”ื’ื“ื™ืœ ืื•ืชื• ืจืฆืฃ ืžืกืคืจ ื‘ืื—ื“ ื•ืฉืืœ ืฉื•ื‘. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื–ื” ื‘ื“ื•ื’ืžื” ื”ื‘ืื”. ืื ื—ื ื• ืžืชื—ื™ืœื™ื ืœื”ื•ืกื™ืฃ 10 ืืœืžื ื˜ื™ื ืขื XADD (ื‘ื”ื ื—ื” ืฉื”-mystream ื›ื‘ืจ ื”ื™ื” ืžืœื ื‘-10 ืืœืžื ื˜ื™ื). ื›ื“ื™ ืœื”ืชื—ื™ืœ ื‘ืื™ื˜ืจืฆื™ื” ืœืงื‘ืœ 2 ืืœืžื ื˜ื™ื ืœื›ืœ ืคืงื•ื“ื”, ืื ื—ื ื• ืžืชื—ื™ืœื™ื ืขื ื”ื˜ื•ื•ื— ื”ืžืœื ืื‘ืœ ืขื COUNT ืฉื•ื•ื” ืœ-2.

> XRANGE mystream - + COUNT 2
1) 1) 1519073278252-0
   2) 1) "foo"
      2) "value_1"
2) 1) 1519073279157-0
   2) 1) "foo"
      2) "value_2"

ื›ื“ื™ ืœื”ืžืฉื™ืš ืœื—ื–ื•ืจ ืขืœ ืฉื ื™ ื”ืืœืžื ื˜ื™ื ื”ื‘ืื™ื, ืขืœื™ื ื• ืœื‘ื—ื•ืจ ืืช ื”ืžื–ื”ื” ื”ืื—ืจื•ืŸ ืฉื”ืชืงื‘ืœ, ื›ืœื•ืžืจ 1519073279157-0, ื•ืœื”ื•ืกื™ืฃ 1 ืœ ืจืฆืฃ ืžืกืคืจ.
ื”ืžื–ื”ื” ื”ืžืชืงื‘ืœ, ื‘ืžืงืจื” ื–ื” 1519073279157-1, ื™ื›ื•ืœ ืœืฉืžืฉ ื›ืขืช ื›ืืจื’ื•ืžื ื˜ ืชื—ื™ืœืช ื”ื˜ื•ื•ื— ื”ื—ื“ืฉ ืขื‘ื•ืจ ื”ืงืจื™ืื” ื”ื‘ืื” XRANGE:

> XRANGE mystream 1519073279157-1 + COUNT 2
1) 1) 1519073280281-0
   2) 1) "foo"
      2) "value_3"
2) 1) 1519073281432-0
   2) 1) "foo"
      2) "value_4"

ื•ื›ื•ืœื™. ื›ื™ ืžื•ืจื›ื‘ื•ืช XRANGE ื”ื•ื O(log(N)) ืœื—ื™ืคื•ืฉ ื•ืœืื—ืจ ืžื›ืŸ O(M) ืœื”ื—ื–ืจืช M ืืœืžื ื˜ื™ื, ื•ืื– ื›ืœ ืฉืœื‘ ืื™ื˜ืจืฆื™ื” ืžื”ื™ืจ. ืœืคื™ื›ืš, ื‘ืืžืฆืขื•ืช XRANGE ื ื™ืชืŸ ืœื‘ืฆืข ืื™ื˜ืจืฆื™ื” ื™ืขื™ืœื” ืฉืœ ื–ืจืžื™ื.

ืงื‘ื•ืฆื” XREVRANGE ื”ื•ื ื”ืžืงื‘ื™ืœ XRANGE, ืื‘ืœ ืžื—ื–ื™ืจ ืืช ื”ืจื›ื™ื‘ื™ื ื‘ืกื“ืจ ื”ืคื•ืš:

> XREVRANGE mystream + - COUNT 1
1) 1) 1519073287312-0
   2) 1) "foo"
      2) "value_10"

ืฉื™ืžื• ืœื‘ ืฉื”ืคืงื•ื“ื” XREVRANGE ืœื•ืงื— ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ื˜ื•ื•ื— ืœื”ืชื—ื™ืœ ื•ืœืขืฆื•ืจ ื‘ืกื“ืจ ื”ืคื•ืš.

ืงืจื™ืืช ืขืจื›ื™ื ื—ื“ืฉื™ื ื‘ืืžืฆืขื•ืช XREAD

ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขื•ืœื” ื”ืžืฉื™ืžื” ืฉืœ ื”ืจืฉืžื” ืœื–ืจื ื•ืงื‘ืœืช ื”ื•ื“ืขื•ืช ื—ื“ืฉื•ืช ื‘ืœื‘ื“. ื”ืจืขื™ื•ืŸ ื”ื–ื” ืื•ืœื™ ื ืจืื” ื“ื•ืžื” ืœ-Redis Pub/Sub ืื• ืœื—ืกื™ืžืช Redis List, ืื‘ืœ ื™ืฉ ื”ื‘ื“ืœื™ื ืžื”ื•ืชื™ื™ื ื‘ืฉื™ืžื•ืฉ ื‘-Redis Stream:

  1. ื›ืœ ื”ื•ื“ืขื” ื—ื“ืฉื” ื ืžืกืจืช ืœื›ืœ ืžื ื•ื™ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื”ืชื ื”ื’ื•ืช ื–ื• ืฉื•ื ื” ืžืจืฉื™ืžืช Redis ื—ืกื™ืžืช, ืฉื‘ื” ื”ื•ื“ืขื” ื—ื“ืฉื” ืชื™ืงืจื ืจืง ืขืœ ื™ื“ื™ ืžื ื•ื™ ืื—ื“.
  2. ื‘ืขื•ื“ ืฉื‘-Redis Pub/Sub ื›ืœ ื”ื”ื•ื“ืขื•ืช ื ืฉื›ื—ื•ืช ื•ืœืขื•ืœื ืœื ื ืžืฉื›ื•ืช, ื‘-Stream ื›ืœ ื”ื”ื•ื“ืขื•ืช ื ืฉืžืจื•ืช ืœืœื ื”ื’ื‘ืœืช ื–ืžืŸ (ืืœื ืื ื”ืœืงื•ื— ื’ื•ืจื ื‘ืžืคื•ืจืฉ ืœืžื—ื™ืงื”).
  3. Redis Stream ืžืืคืฉืจ ืœืš ืœื”ื‘ื“ื™ืœ ื‘ื™ืŸ ื’ื™ืฉื” ืœื”ื•ื“ืขื•ืช ื‘ืชื•ืš ื–ืจื ืื—ื“. ืžื ื•ื™ ืกืคืฆื™ืคื™ ื™ื›ื•ืœ ืœืจืื•ืช ืจืง ืืช ื”ื™ืกื˜ื•ืจื™ื™ืช ื”ื”ื•ื“ืขื•ืช ื”ืื™ืฉื™ืช ืฉืœื•.

ืืชื” ื™ื›ื•ืœ ืœื”ื™ืจืฉื ืœืฉืจืฉื•ืจ ื•ืœืงื‘ืœ ื”ื•ื“ืขื•ืช ื—ื“ืฉื•ืช ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” XREAD. ื–ื” ืงืฆืช ื™ื•ืชืจ ืžืกื•ื‘ืš ืžืืฉืจ XRANGE, ืื– ื ืชื—ื™ืœ ืชื—ื™ืœื” ืขื ื”ื“ื•ื’ืžืื•ืช ื”ืคืฉื•ื˜ื•ืช ื™ื•ืชืจ.

> XREAD COUNT 2 STREAMS mystream 0
1) 1) "mystream"
   2) 1) 1) 1519073278252-0
         2) 1) "foo"
            2) "value_1"
      2) 1) 1519073279157-0
         2) 1) "foo"
            2) "value_2"

ื”ื“ื•ื’ืžื” ืฉืœืžืขืœื” ืžืฆื™ื’ื” ื˜ื•ืคืก ืœื ื—ื•ืกื XREAD. ืฉื™ื ืœื‘ ืฉื”ืืคืฉืจื•ืช COUNT ื”ื™ื ืื•ืคืฆื™ื•ื ืœื™ืช. ืœืžืขืฉื”, ืืคืฉืจื•ืช ื”ืคืงื•ื“ื” ื”ื™ื—ื™ื“ื” ื”ื ื“ืจืฉืช ื”ื™ื ืืคืฉืจื•ืช STREAMS, ืฉืžืฆื™ื™ื ืช ืจืฉื™ืžื” ืฉืœ ื–ืจืžื™ื ื™ื—ื“ ืขื ื”ืžื–ื”ื” ื”ืžืงืกื™ืžืœื™ ื”ืžืชืื™ื. ื›ืชื‘ื ื• "STREAMS mystream 0" - ืื ื—ื ื• ืจื•ืฆื™ื ืœืงื‘ืœ ืืช ื›ืœ ื”ืจืฉื•ืžื•ืช ืฉืœ ื–ืจื mystream ืขื ืžื–ื”ื” ื’ื“ื•ืœ ืž-"0-0". ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ืžื”ื“ื•ื’ืžื”, ื”ืคืงื•ื“ื” ืžื—ื–ื™ืจื” ืืช ืฉื ื”ืฉืจืฉื•ืจ ืžื›ื™ื•ื•ืŸ ืฉืื ื• ื™ื›ื•ืœื™ื ืœื”ื™ืจืฉื ืœืžืกืคืจ ืฉืจืฉื•ืจื™ื ื‘ื• ื–ืžื ื™ืช. ื ื•ื›ืœ ืœื›ืชื•ื‘, ืœืžืฉืœ, "STREAMS mystream otherstream 0 0". ืฉื™ืžื• ืœื‘ ืฉืื—ืจื™ ืืคืฉืจื•ืช STREAMS ืขืœื™ื ื• ืœืกืคืง ืชื—ื™ืœื” ืืช ืฉืžื•ืช ื›ืœ ื”ื–ืจืžื™ื ื”ื ื“ืจืฉื™ื ื•ืจืง ืœืื—ืจ ืžื›ืŸ ืจืฉื™ืžืช ืžื–ื”ื™ื.

ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ื–ื• ื”ืคืงื•ื“ื” ืœื ืขื•ืฉื” ืฉื•ื ื“ื‘ืจ ืžื™ื•ื—ื“ ื‘ื”ืฉื•ื•ืื” XRANGE. ืขื ื–ืืช, ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื”ื•ื ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ื‘ืงืœื•ืช ืœื”ืคื•ืš XREAD ืœืคืงื•ื“ืช ื—ืกื™ืžื”, ืชื•ืš ืฆื™ื•ืŸ ื”ืืจื’ื•ืžื ื˜ BLOCK:

> XREAD BLOCK 0 STREAMS mystream $

ื‘ื“ื•ื’ืžื” ืฉืœืžืขืœื”, ืืคืฉืจื•ืช BLOCK ื—ื“ืฉื” ืžืฆื•ื™ื ืช ืขื ืคืกืง ื–ืžืŸ ืฉืœ 0 ืืœืคื™ื•ืช ืฉื ื™ื•ืช (ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื ื”ืžืชื ื” ืœืœื ื”ื’ื‘ืœืช ื–ืžืŸ). ื™ืชืจื” ืžื›ืš, ื‘ืžืงื•ื ืœื”ืขื‘ื™ืจ ืืช ื”ืžื–ื”ื” ื”ืจื’ื™ืœ ืœ-stream mystream, ื”ื•ืขื‘ืจ ืžื–ื”ื” ืžื™ื•ื—ื“ $. ืžื–ื”ื” ืžื™ื•ื—ื“ ื–ื” ืื•ืžืจ ื–ืืช XREAD ื—ื™ื™ื‘ ืœื”ืฉืชืžืฉ ื‘ืžื–ื”ื” ื”ืžืงืกื™ืžืœื™ ื‘-mystream ื›ืžื–ื”ื”. ื›ืš ืฉื ืงื‘ืœ ืจืง ื”ื•ื“ืขื•ืช ื—ื“ืฉื•ืช ื”ื—ืœ ืžื”ืจื’ืข ืฉื”ืชื—ืœื ื• ืœื”ืื–ื™ืŸ. ื‘ืžื•ื‘ื ื™ื ืžืกื•ื™ืžื™ื ื–ื” ื“ื•ืžื” ืœืคืงื•ื“ืช Unix "tail -f".

ืฉื™ืžื• ืœื‘ ืฉื‘ืฉื™ืžื•ืฉ ื‘ืืคืฉืจื•ืช BLOCK ืื ื—ื ื• ืœื ื‘ื”ื›ืจื— ืฆืจื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘ืžื–ื”ื” ื”ืžื™ื•ื—ื“ $. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืžื–ื”ื” ืฉืงื™ื™ื ื‘ื–ืจื. ืื ื”ืฆื•ื•ืช ื™ื›ื•ืœ ืœื˜ืคืœ ื‘ื‘ืงืฉื” ืฉืœื ื• ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ื‘ืœื™ ืœื—ืกื•ื, ื”ื•ื ื™ืขืฉื” ื–ืืช, ืื—ืจืช ื”ื•ื ื™ื—ืกื•ื.

ื—ืกื™ืžื” XREAD ื™ื›ื•ืœ ื’ื ืœื”ืื–ื™ืŸ ืœืžืกืคืจ ืฉืจืฉื•ืจื™ื ื‘ื‘ืช ืื—ืช, ืืชื” ืจืง ืฆืจื™ืš ืœืฆื™ื™ืŸ ืืช ืฉืžื•ืชื™ื”ื. ื‘ืžืงืจื” ื–ื”, ื”ืคืงื•ื“ื” ืชื—ื–ื™ืจ ืจืฉื•ืžื” ืฉืœ ื”ื–ืจื ื”ืจืืฉื•ืŸ ืฉืงื™ื‘ืœ ื ืชื•ื ื™ื. ื”ืžื ื•ื™ ื”ืจืืฉื•ืŸ ืฉื ื—ืกื ืขื‘ื•ืจ ืฉืจืฉื•ืจ ื ืชื•ืŸ ื™ืงื‘ืœ ื ืชื•ื ื™ื ืชื—ื™ืœื”.

ืงื‘ื•ืฆื•ืช ืฆืจื›ื ื•ืช

ื‘ืžืฉื™ืžื•ืช ืžืกื•ื™ืžื•ืช, ืื ื• ืจื•ืฆื™ื ืœื”ื’ื‘ื™ืœ ืืช ื’ื™ืฉืช ื”ืžื ื•ื™ ืœื”ื•ื“ืขื•ืช ื‘ืชื•ืš ืฉืจืฉื•ืจ ืื—ื“. ื“ื•ื’ืžื” ืฉื‘ื” ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ ื”ื™ื ืชื•ืจ ื”ื•ื“ืขื•ืช ืขื ืขื•ื‘ื“ื™ื ืฉื™ืงื‘ืœื• ื”ื•ื“ืขื•ืช ืฉื•ื ื•ืช ืžืฉืจืฉื•ืจ, ืžื” ืฉื™ืืคืฉืจ ืขื™ื‘ื•ื“ ื”ื•ื“ืขื•ืช ืœื”ื’ื“ืœื”.

ืื ื ื“ืžื™ื™ืŸ ืฉื™ืฉ ืœื ื• ืฉืœื•ืฉื” ืžื ื•ื™ื™ื C1, C2, C3 ื•ืฉืจืฉื•ืจ ื”ืžื›ื™ืœ ื”ื•ื“ืขื•ืช 1, 2, 3, 4, 5, 6, 7, ืื– ื”ื”ื•ื“ืขื•ืช ื™ื•ื’ืฉื• ื›ืžื• ื‘ืชืจืฉื™ื ืฉืœื”ืœืŸ:

1 -> C1
2 -> C2
3 -> C3
4 -> C1
5 -> C2
6 -> C3
7 -> C1

ื›ื“ื™ ืœื”ืฉื™ื’ ืืช ื”ืืคืงื˜ ื”ื–ื”, Redis Stream ืžืฉืชืžืฉ ื‘ืžื•ืฉื’ ืฉื ืงืจื Consumer Group. ืžื•ืฉื’ ื–ื” ื“ื•ืžื” ืœืžื ื•ื™ ืคืกืื•ื“ื•, ืฉืžืงื‘ืœ ื ืชื•ื ื™ื ืžื–ืจื, ืืš ืœืžืขืฉื” ืžื•ื’ืฉ ืขืœ ื™ื“ื™ ืžืกืคืจ ืžื ื•ื™ื™ื ื‘ืชื•ืš ืงื‘ื•ืฆื”, ืชื•ืš ืžืชืŸ ืขืจื‘ื•ื™ื•ืช ืžืกื•ื™ืžื•ืช:

  1. ื›ืœ ื”ื•ื“ืขื” ื ืžืกืจืช ืœืžื ื•ื™ ืื—ืจ ื‘ืชื•ืš ื”ืงื‘ื•ืฆื”.
  2. ื‘ืชื•ืš ืงื‘ื•ืฆื”, ืžื ื•ื™ื™ื ืžื–ื•ื”ื™ื ื‘ืฉืžื, ืฉื”ื•ื ืžื—ืจื•ื–ืช ืชืœื•ื™ืช ืจื™ืฉื™ื•ืช. ืื ืžื ื•ื™ ื ื•ืฉืจ ื–ืžื ื™ืช ืžื”ืงื‘ื•ืฆื”, ื ื™ืชืŸ ืœื”ื—ื–ื™ืจ ืื•ืชื• ืœืงื‘ื•ืฆื” ื‘ืืžืฆืขื•ืช ื”ืฉื ื”ื™ื™ื—ื•ื“ื™ ืฉืœื•.
  3. ื›ืœ ืงื‘ื•ืฆืช ืฆืจื›ื ื™ื ืคื•ืขืœืช ืœืคื™ ื”ืžื•ืฉื’ "ื”ื•ื“ืขื” ืจืืฉื•ื ื” ืฉืœื ื ืงืจืื”". ื›ืืฉืจ ืžื ื•ื™ ืžื‘ืงืฉ ื”ื•ื“ืขื•ืช ื—ื“ืฉื•ืช, ื”ื•ื ื™ื›ื•ืœ ืœืงื‘ืœ ืจืง ื”ื•ื“ืขื•ืช ืฉืžืขื•ืœื ืœื ื ืžืกืจื• ื‘ืขื‘ืจ ืœืžื ื•ื™ ื›ืœืฉื”ื• ื‘ืงื‘ื•ืฆื”.
  4. ื™ืฉื ื” ืคืงื•ื“ื” ืœืืฉืจ ื‘ืžืคื•ืจืฉ ืฉื”ื”ื•ื“ืขื” ืขื•ื‘ื“ื” ื‘ื”ืฆืœื—ื” ืขืœ ื™ื“ื™ ื”ืžื ื•ื™. ืขื“ ืฉืชืงืจื ืคืงื•ื“ื” ื–ื•, ื”ื”ื•ื“ืขื” ื”ืžื‘ื•ืงืฉืช ืชื™ืฉืืจ ื‘ืžืฆื‘ "ื‘ื”ืžืชื ื”".
  5. ื‘ืชื•ืš ืงื‘ื•ืฆืช ื”ืฆืจื›ื ื™ื, ื›ืœ ืžื ื•ื™ ื™ื›ื•ืœ ืœื‘ืงืฉ ื”ื™ืกื˜ื•ืจื™ื™ืช ื”ื•ื“ืขื•ืช ืฉื ืžืกืจื• ืœื•, ืืš ื˜ืจื ื˜ื•ืคืœื• (ื‘ืกื˜ื˜ื•ืก "ื‘ื”ืžืชื ื”")

ื‘ืžื•ื‘ืŸ ืžืกื•ื™ื, ืžืฆื‘ ื”ืงื‘ื•ืฆื” ื™ื›ื•ืœ ืœื‘ื•ื ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ื‘ืื•ืคืŸ ื”ื‘ื:

+----------------------------------------+
| consumer_group_name: mygroup          
| consumer_group_stream: somekey        
| last_delivered_id: 1292309234234-92    
|                                                           
| consumers:                                          
|    "consumer-1" with pending messages  
|       1292309234234-4                          
|       1292309234232-8                          
|    "consumer-42" with pending messages 
|       ... (and so forth)                             
+----------------------------------------+

ืขื›ืฉื™ื• ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ื›ื™ืจ ืืช ื”ืคืงื•ื“ื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉืœ ืงื‘ื•ืฆืช ื”ืฆืจื›ื ื™ื, ื›ืœื•ืžืจ:

  • XGROUP ืžืฉืžืฉ ืœื™ืฆื™ืจื”, ื”ืจืก ื•ื ื™ื”ื•ืœ ืงื‘ื•ืฆื•ืช
  • XREADGROUP ืžืฉืžืฉ ืœืงืจื™ืืช ื–ืจื ื“ืจืš ื”ืงื‘ื•ืฆื”
  • XACK - ืคืงื•ื“ื” ื–ื• ืžืืคืฉืจืช ืœืžื ื•ื™ ืœืกืžืŸ ืืช ื”ื”ื•ื“ืขื” ื›ืขื•ื‘ื“ื” ื‘ื”ืฆืœื—ื”

ื”ืงืžืช ืงื‘ื•ืฆืช ืฆืจื›ื ื™ื

ื‘ื•ืื• ื ื ื™ื— ืฉื”-mystream ื›ื‘ืจ ืงื™ื™ื. ื•ืื– ืคืงื•ื“ืช ื™ืฆื™ืจืช ื”ืงื‘ื•ืฆื” ืชื™ืจืื” ื›ืš:

> XGROUP CREATE mystream mygroup $
OK

ื‘ืขืช ื™ืฆื™ืจืช ืงื‘ื•ืฆื”, ืขืœื™ื ื• ืœื”ืขื‘ื™ืจ ืžื–ื”ื”, ืฉืžืชื—ื™ืœ ืžืžื ื• ื”ืงื‘ื•ืฆื” ืชืงื‘ืœ ื”ื•ื“ืขื•ืช. ืื ืื ื—ื ื• ืจืง ืจื•ืฆื™ื ืœืงื‘ืœ ืืช ื›ืœ ื”ื”ื•ื“ืขื•ืช ื”ื—ื“ืฉื•ืช, ืื– ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืžื–ื”ื” ื”ืžื™ื•ื—ื“ $ (ื›ืžื• ื‘ื“ื•ื’ืžื” ืฉืœื ื• ืœืžืขืœื”). ืื ืชืฆื™ื™ืŸ 0 ื‘ืžืงื•ื ืžื–ื”ื” ืžื™ื•ื—ื“, ืื– ื›ืœ ื”ื”ื•ื“ืขื•ืช ื‘ืฉืจืฉื•ืจ ื™ื”ื™ื• ื–ืžื™ื ื•ืช ืœืงื‘ื•ืฆื”.

ื›ืขืช ืœืื—ืจ ื™ืฆื™ืจืช ื”ืงื‘ื•ืฆื”, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืชื—ื™ืœ ืžื™ื“ ืœืงืจื•ื ื”ื•ื“ืขื•ืช ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” XREADGROUP. ืคืงื•ื“ื” ื–ื• ื“ื•ืžื” ืžืื•ื“ ืœ XREAD ื•ืชื•ืžืš ื‘ืืคืฉืจื•ืช ื”-BLOCK ื”ืื•ืคืฆื™ื•ื ืœื™ืช. ืขื ื–ืืช, ื™ืฉื ื” ืืคืฉืจื•ืช GROUP ื ื“ืจืฉืช ืฉืชืžื™ื“ ื™ืฉ ืœืฆื™ื™ืŸ ืขื ืฉื ื™ ืืจื’ื•ืžื ื˜ื™ื: ืฉื ื”ืงื‘ื•ืฆื” ื•ืฉื ื”ืžื ื•ื™. ื’ื ื”ืืคืฉืจื•ืช COUNT ื ืชืžื›ืช.

ืœืคื ื™ ืงืจื™ืืช ื”ืฉืจืฉื•ืจ, ื‘ื•ื ื ื›ื ื™ืก ืฉื ื›ืžื” ื”ื•ื“ืขื•ืช:

> XADD mystream * message apple
1526569495631-0
> XADD mystream * message orange
1526569498055-0
> XADD mystream * message strawberry
1526569506935-0
> XADD mystream * message apricot
1526569535168-0
> XADD mystream * message banana
1526569544280-0

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื ืกื” ืœืงืจื•ื ืืช ื”ื–ืจื ื”ื–ื” ื“ืจืš ื”ืงื‘ื•ืฆื”:

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

ื”ืคืงื•ื“ื” ืฉืœืขื™ืœ ืงื•ืจืืช ืžื™ืœื” ื‘ืžื™ืœื” ื›ื“ืœืงืžืŸ:

"ืื ื™, ื”ืžื ื•ื™ ืืœื™ืก, ื—ื‘ืจื” ื‘-mygroup, ืจื•ืฆื” ืœืงืจื•ื ื”ื•ื“ืขื” ืื—ืช ืž-mystream ืฉืžืขื•ืœื ืœื ื ืžืกืจื” ืœืืฃ ืื—ื“ ืœืคื ื™ ื›ืŸ."

ื‘ื›ืœ ืคืขื ืฉืžื ื•ื™ ืžื‘ืฆืข ืคืขื•ืœื” ื‘ืงื‘ื•ืฆื”, ืขืœื™ื• ืœืกืคืง ืืช ืฉืžื”, ื•ืœื–ื”ื•ืช ืืช ืขืฆืžื• ื‘ืื•ืคืŸ ื™ื™ื—ื•ื“ื™ ื‘ืชื•ืš ื”ืงื‘ื•ืฆื”. ื™ืฉ ืขื•ื“ ืคืจื˜ ืื—ื“ ื—ืฉื•ื‘ ืžืื•ื“ ื‘ืคืงื•ื“ื” ืœืขื™ืœ - ื”ืžื–ื”ื” ื”ืžื™ื•ื—ื“ ">". ื”ืžื–ื”ื” ื”ืžื™ื•ื—ื“ ื”ื–ื” ืžืกื ืŸ ื”ื•ื“ืขื•ืช ื•ืžืฉืื™ืจ ืจืง ืืช ืืœื” ืฉืžืขื•ืœื ืœื ื ืžืกืจื• ืงื•ื“ื ืœื›ืŸ.

ื›ืžื• ื›ืŸ, ื‘ืžืงืจื™ื ืžื™ื•ื—ื“ื™ื, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืžื–ื”ื” ืืžื™ืชื™ ื›ื’ื•ืŸ 0 ืื• ื›ืœ ืžื–ื”ื” ื—ื•ืงื™ ืื—ืจ. ื‘ืžืงืจื” ื–ื” ื”ืคืงื•ื“ื” XREADGROUP ื™ื—ื–ื™ืจ ืœืš ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ ื”ื•ื“ืขื•ืช ื‘ืกื˜ื˜ื•ืก "ื‘ื”ืžืชื ื”" ืฉื ืžืกืจื• ืœืžื ื•ื™ ืฉืฆื•ื™ืŸ (ืืœื™ืก) ืืš ืขื“ื™ื™ืŸ ืœื ืงื™ื‘ืœื• ืื™ืฉื•ืจ ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” XACK.

ืื ื• ื™ื›ื•ืœื™ื ืœื‘ื“ื•ืง ื”ืชื ื”ื’ื•ืช ื–ื• ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ืžื™ื™ื“ื™ ืฉืœ ื”ืžื–ื”ื” 0, ืœืœื ืืคืฉืจื•ืช COUNT. ืื ื• ืคืฉื•ื˜ ื ืจืื” ื”ื•ื“ืขื” ืื—ืช ืžืžืชื™ื ื”, ื›ืœื•ืžืจ, ื”ื•ื“ืขืช Apple:

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

ืขื ื–ืืช, ืื ื ืืฉืจ ืฉื”ื”ื•ื“ืขื” ืขื•ื‘ื“ื” ื‘ื”ืฆืœื—ื”, ื”ื™ื ืœื ืชื•ืฆื’ ืขื•ื“:

> XACK mystream mygroup 1526569495631-0
(integer) 1
> XREADGROUP GROUP mygroup Alice STREAMS mystream 0
1) 1) "mystream"
   2) (empty list or set)

ืขื›ืฉื™ื• ืชื•ืจื• ืฉืœ ื‘ื•ื‘ ืœืงืจื•ื ืžืฉื”ื•:

> XREADGROUP GROUP mygroup Bob COUNT 2 STREAMS mystream >
1) 1) "mystream"
   2) 1) 1) 1526569498055-0
         2) 1) "message"
            2) "orange"
      2) 1) 1526569506935-0
         2) 1) "message"
            2) "strawberry"

ื‘ื•ื‘, ื—ื‘ืจ ื‘-mygroup, ื‘ื™ืงืฉ ืœื ื™ื•ืชืจ ืžืฉืชื™ ื”ื•ื“ืขื•ืช. ื”ืคืงื•ื“ื” ืžื“ื•ื•ื—ืช ืจืง ืขืœ ื”ื•ื“ืขื•ืช ืฉืœื ื ืžืกืจื• ืขืงื‘ ื”ืžื–ื”ื” ื”ืžื™ื•ื—ื“ ">". ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ื”ื•ื“ืขื” "ืชืคื•ื—" ืœื ืชื•ืฆื’ ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ื›ื‘ืจ ื ืžืกืจื” ืœืืœื™ืก, ืื– ื‘ื•ื‘ ืžืงื‘ืœ "ืชืคื•ื–" ื•"ืชื•ืช".

ื‘ื“ืจืš ื–ื•, ืืœื™ืก, ื‘ื•ื‘ ื•ื›ืœ ืžื ื•ื™ ืื—ืจ ืœืงื‘ื•ืฆื” ื™ื›ื•ืœื™ื ืœืงืจื•ื ื”ื•ื“ืขื•ืช ืฉื•ื ื•ืช ืžืื•ืชื• ื–ืจื. ื”ื ื™ื›ื•ืœื™ื ื’ื ืœืงืจื•ื ืืช ื”ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ ื”ื•ื“ืขื•ืช ืœื ืžืขื•ื‘ื“ื•ืช ืื• ืœืกืžืŸ ื”ื•ื“ืขื•ืช ื›ืขื•ื‘ื“ื•ืช.

ื™ืฉ ืœื–ื›ื•ืจ ื›ืžื” ื“ื‘ืจื™ื:

  • ื‘ืจื’ืข ืฉื”ืžื ื•ื™ ืžื—ืฉื™ื‘ ืืช ื”ื”ื•ื“ืขื” ื›ืคืงื•ื“ื” XREADGROUP, ื”ื•ื“ืขื” ื–ื• ืขื•ื‘ืจืช ืœืžืฆื‘ "ื‘ื”ืžืชื ื”" ื•ื”ื™ื ืžื•ืงืฆื™ืช ืœืื•ืชื• ืžื ื•ื™ ืกืคืฆื™ืคื™. ืžื ื•ื™ื™ื ืื—ืจื™ื ื‘ืงื‘ื•ืฆื” ืœื ื™ื•ื›ืœื• ืœืงืจื•ื ื”ื•ื“ืขื” ื–ื•.
  • ืžื ื•ื™ื™ื ื ื•ืฆืจื™ื ืื•ื˜ื•ืžื˜ื™ืช ืขื ืื–ื›ื•ืจ ืจืืฉื•ืŸ, ืื™ืŸ ืฆื•ืจืš ืœื™ืฆื•ืจ ืื•ืชื ื‘ืžืคื•ืจืฉ.
  • ืขื XREADGROUP ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ื”ื•ื“ืขื•ืช ืžืžืกืคืจ ืฉืจืฉื•ืจื™ื ืฉื•ื ื™ื ื‘ื•-ื–ืžื ื™ืช, ืื•ืœื ื›ื“ื™ ืฉื–ื” ื™ืขื‘ื•ื“ ืขืœื™ืš ืœื™ืฆื•ืจ ืชื—ื™ืœื” ืงื‘ื•ืฆื•ืช ืขื ืื•ืชื• ืฉื ืขื‘ื•ืจ ื›ืœ ืฉืจืฉื•ืจ ื‘ืืžืฆืขื•ืช XGROUP

ื”ืชืื•ืฉืฉื•ืช ืœืื—ืจ ื›ื™ืฉืœื•ืŸ

ื”ืžื ื•ื™ ื™ื›ื•ืœ ืœื”ืชืื•ืฉืฉ ืžื”ื›ืฉืœ ื•ืœืงืจื•ื ืžื—ื“ืฉ ืืช ืจืฉื™ืžืช ื”ื”ื•ื“ืขื•ืช ืฉืœื• ืขื ื”ืกื˜ื˜ื•ืก "ื‘ื”ืžืชื ื”". ืขื ื–ืืช, ื‘ืขื•ืœื ื”ืืžื™ืชื™, ืžื ื•ื™ื™ื ืขืœื•ืœื™ื ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืœื”ื™ื›ืฉืœ. ืžื” ืงื•ืจื” ืœื”ื•ื“ืขื•ืช ื”ืชืงื•ืขื•ืช ืฉืœ ืžื ื•ื™ ืื ื”ืžื ื•ื™ ืœื ืžืฆืœื™ื— ืœื”ืชืื•ืฉืฉ ืžืชืงืœื”?
Consumer Group ืžืฆื™ืขื” ืชื›ื•ื ื” ื”ืžืฉืžืฉืช ื‘ื“ื™ื•ืง ืœืžืงืจื™ื ื›ืืœื” - ื›ืืฉืจ ืฆืจื™ืš ืœืฉื ื•ืช ืืช ื”ื‘ืขืœื™ื ืฉืœ ื”ื”ื•ื“ืขื•ืช.

ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ื”ื•ื ืœืงืจื•ื ืœืคืงื•ื“ื” XPENDING, ื”ืžืฆื™ื’ ืืช ื›ืœ ื”ื”ื•ื“ืขื•ืช ื‘ืงื‘ื•ืฆื” ืขื ื”ืกื˜ื˜ื•ืก "ื‘ื”ืžืชื ื”". ื‘ืฆื•ืจืชื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ, ื”ืคืงื•ื“ื” ื ืงืจืืช ืขื ืฉื ื™ ืืจื’ื•ืžื ื˜ื™ื ื‘ืœื‘ื“: ืฉื ื”ืฉืจืฉื•ืจ ื•ืฉื ื”ืงื‘ื•ืฆื”:

> XPENDING mystream mygroup
1) (integer) 2
2) 1526569498055-0
3) 1526569506935-0
4) 1) 1) "Bob"
      2) "2"

ื”ืฆื•ื•ืช ื”ืฆื™ื’ ืืช ืžืกืคืจ ื”ื”ื•ื“ืขื•ืช ื”ืœื ืžืขื•ื‘ื“ื•ืช ืขื‘ื•ืจ ื›ืœ ื”ืงื‘ื•ืฆื” ื•ืขื‘ื•ืจ ื›ืœ ืžื ื•ื™. ื™ืฉ ืœื ื• ืจืง ืœื‘ื•ื‘ ืขื ืฉืชื™ ื”ื•ื“ืขื•ืช ื™ื•ืฆืื•ืช ื“ื•ืคืŸ ื›ื™ ื”ื”ื•ื“ืขื” ื”ื™ื—ื™ื“ื” ืฉืืœื™ืก ื‘ื™ืงืฉื” ืื•ืฉืจื” XACK.

ืื ื• ื™ื›ื•ืœื™ื ืœื‘ืงืฉ ืžื™ื“ืข ื ื•ืกืฃ ื‘ืืžืฆืขื•ืช ื˜ื™ืขื•ื ื™ื ื ื•ืกืคื™ื:

XPENDING {key} {groupname} [{start-id} {end-id} {count} [{consumer-name}]]
{start-id} {end-id} - ื˜ื•ื•ื— ืžื–ื”ื™ื (ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘-"-" ื•-"+")
{count} - ืžืกืคืจ ื ื™ืกื™ื•ื ื•ืช ื”ืžืกื™ืจื”
{consumer-name} - ืฉื ื”ืงื‘ื•ืฆื”

> XPENDING mystream mygroup - + 10
1) 1) 1526569498055-0
   2) "Bob"
   3) (integer) 74170458
   4) (integer) 1
2) 1) 1526569506935-0
   2) "Bob"
   3) (integer) 74170458
   4) (integer) 1

ื›ืขืช ื™ืฉ ืœื ื• ืคืจื˜ื™ื ืขื‘ื•ืจ ื›ืœ ื”ื•ื“ืขื”: ืžื–ื”ื”, ืฉื ืžื ื•ื™, ื–ืžืŸ ืกืจืง ื‘ืืœืคื™ื•ืช ืฉื ื™ื•ืช ื•ืœื‘ืกื•ืฃ ืžืกืคืจ ื ื™ืกื™ื•ื ื•ืช ื”ืžืกื™ืจื”. ื™ืฉ ืœื ื• ืฉืชื™ ื”ื•ื“ืขื•ืช ืžื‘ื•ื‘ ื•ื”ืŸ ืœื ื”ื™ื• ืคืขื™ืœื•ืช ื‘ืžืฉืš 74170458 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”, ื‘ืขืจืš 20 ืฉืขื•ืช.

ืฉื™ืžื• ืœื‘ ืฉืืฃ ืื—ื“ ืœื ืžื•ื ืข ืžืื™ืชื ื• ืœื‘ื“ื•ืง ืžื” ื”ื™ื” ืชื•ื›ืŸ ื”ื”ื•ื“ืขื” ืคืฉื•ื˜ ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ XRANGE.

> XRANGE mystream 1526569498055-0 1526569498055-0
1) 1) 1526569498055-0
   2) 1) "message"
      2) "orange"

ืื ื—ื ื• ืจืง ืฆืจื™ื›ื™ื ืœื—ื–ื•ืจ ืขืœ ืื•ืชื• ืžื–ื”ื” ืคืขืžื™ื™ื ื‘ื˜ื™ืขื•ื ื™ื. ืขื›ืฉื™ื•, ื›ืฉื™ืฉ ืœื ื• ืจืขื™ื•ืŸ ืžืกื•ื™ื, ืืœื™ืก ืขืฉื•ื™ื” ืœื”ื—ืœื™ื˜ ืฉืื—ืจื™ 20 ืฉืขื•ืช ืฉืœ ื”ืฉื‘ืชื”, ื‘ื•ื‘ ื›ื ืจืื” ืœื ื™ืชืื•ืฉืฉ, ื•ื–ื” ื”ื–ืžืŸ ืœื‘ืฆืข ืฉืื™ืœืชื•ืช ื‘ื”ื•ื“ืขื•ืช ื”ืืœื” ื•ืœื—ื“ืฉ ืืช ืขื™ื‘ื•ื“ืŸ ืขื‘ื•ืจ ื‘ื•ื‘. ืœืฉื ื›ืš ืื ื• ืžืฉืชืžืฉื™ื ื‘ืคืงื•ื“ื” XCLAIM:

XCLAIM {key} {group} {consumer} {min-idle-time} {ID-1} {ID-2} ... {ID-N}

ื‘ืืžืฆืขื•ืช ืคืงื•ื“ื” ื–ื•, ื ื•ื›ืœ ืœืงื‘ืœ ื”ื•ื“ืขื” "ื–ืจื”" ืฉืขื“ื™ื™ืŸ ืœื ืขื•ื‘ื“ื” ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ื”ื‘ืขืœื™ื ืœ-{consumer}. ืขื ื–ืืช, ืื ื• ื™ื›ื•ืœื™ื ื’ื ืœืกืคืง ื–ืžืŸ ืกืจืง ืžื™ื ื™ืžืœื™ {min-idle-time}. ื–ื” ืขื•ื–ืจ ืœืžื ื•ืข ืžืฆื‘ ืฉื‘ื• ืฉื ื™ ืœืงื•ื—ื•ืช ืžื ืกื™ื ืœืฉื ื•ืช ื‘ื• ื–ืžื ื™ืช ืืช ื”ื‘ืขืœื™ื ืฉืœ ืื•ืชืŸ ื”ื•ื“ืขื•ืช:

Client 1: XCLAIM mystream mygroup Alice 3600000 1526569498055-0
Clinet 2: XCLAIM mystream mygroup Lora 3600000 1526569498055-0

ื”ืœืงื•ื— ื”ืจืืฉื•ืŸ ื™ืืคืก ืืช ื–ืžืŸ ื”ื”ืฉื‘ืชื” ื•ื™ื’ื“ื™ืœ ืืช ืžื•ื ื” ื”ืžืฉืœื•ื—ื™ื. ืื– ื”ืœืงื•ื— ื”ืฉื ื™ ืœื ื™ื•ื›ืœ ืœื‘ืงืฉ ื–ืืช.

> XCLAIM mystream mygroup Alice 3600000 1526569498055-0
1) 1) 1526569498055-0
   2) 1) "message"
      2) "orange"

ื”ื”ื•ื“ืขื” ื ืชื‘ืขื” ื‘ื”ืฆืœื—ื” ืขืœ ื™ื“ื™ ืืœื™ืก, ืฉื™ื›ื•ืœื” ื›ืขืช ืœืขื‘ื“ ืืช ื”ื”ื•ื“ืขื” ื•ืœืืฉืจ ืื•ืชื”.

ืžื”ื“ื•ื’ืžื” ืœืขื™ืœ, ื ื™ืชืŸ ืœืจืื•ืช ืฉื‘ืงืฉื” ืžื•ืฆืœื—ืช ืžื—ื–ื™ืจื” ืืช ืชื•ื›ืŸ ื”ื”ื•ื“ืขื” ืขืฆืžื”. ืขื ื–ืืช, ืื™ืŸ ืฆื•ืจืš ื‘ื›ืš. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืืคืฉืจื•ืช JUSTID ืœื”ื—ื–ืจืช ืžื–ื”ื™ ื”ื•ื“ืขื•ืช ื‘ืœื‘ื“. ื–ื” ืฉื™ืžื•ืฉื™ ืื ืื™ื ืš ืžืขื•ื ื™ื™ืŸ ื‘ืคืจื˜ื™ ื”ื”ื•ื“ืขื” ื•ืžืขื•ื ื™ื™ืŸ ืœื”ื’ื‘ื™ืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืžืขืจื›ืช.

ื“ืœืคืง ืžืฉืœื•ื—ื™ื

ื”ืžื•ื ื” ืฉืืชื” ืจื•ืื” ื‘ืคืœื˜ XPENDING ื”ื•ื ืžืกืคืจ ื”ืžืกื™ืจื•ืช ืฉืœ ื›ืœ ื”ื•ื“ืขื”. ืžื•ื ื” ื›ื–ื” ืžื•ื’ื“ืœ ื‘ืฉืชื™ ื“ืจื›ื™ื: ื›ืืฉืจ ื”ื•ื“ืขื” ืžืชื‘ืงืฉืช ื‘ื”ืฆืœื—ื” ื‘ืืžืฆืขื•ืช XCLAIM ืื• ื›ืืฉืจ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื™ื—ื” XREADGROUP.

ื–ื” ื ื•ืจืžืœื™ ืฉื”ื•ื“ืขื•ืช ืžืกื•ื™ืžื•ืช ืžื•ืขื‘ืจื•ืช ืžืกืคืจ ืคืขืžื™ื. ื”ืขื™ืงืจ ืฉื›ืœ ื”ื”ื•ื“ืขื•ืช ื™ืขื•ื‘ื“ื• ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ. ืœืคืขืžื™ื ืžืชืจื—ืฉื•ืช ื‘ืขื™ื•ืช ื‘ืขืช ืขื™ื‘ื•ื“ ื”ื•ื“ืขื” ื‘ื’ืœืœ ืฉื”ื”ื•ื“ืขื” ืขืฆืžื” ืคื’ื•ืžื”, ืื• ืฉืขื™ื‘ื•ื“ ื”ื”ื•ื“ืขื•ืช ื’ื•ืจื ืœืฉื’ื™ืื” ื‘ืงื•ื“ ื”ืžื˜ืคืœ. ื‘ืžืงืจื” ื–ื”, ืขืœื•ืœ ืœื”ืชื‘ืจืจ ืฉืืฃ ืื—ื“ ืœื ื™ื•ื›ืœ ืœืขื‘ื“ ืืช ื”ื”ื•ื“ืขื” ื”ื–ื•. ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื ื• ืžื•ื ื” ื ื™ืกื™ื•ื ื•ืช ืžืกื™ืจื”, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืžื•ื ื” ื–ื” ื›ื“ื™ ืœื–ื”ื•ืช ืžืฆื‘ื™ื ื›ืืœื”. ืœื›ืŸ, ื‘ืจื’ืข ืฉืกืคื™ืจืช ื”ืžืกื™ืจื” ืžื’ื™ืขื” ืœืžืกืคืจ ื”ื’ื‘ื•ื” ืฉืฆื™ื™ื ืช, ื›ื ืจืื” ืฉื™ื”ื™ื” ื—ื›ื ื™ื•ืชืจ ืœืฉื™ื ื”ื•ื“ืขื” ื›ื–ื• ื‘ืฉืจืฉื•ืจ ืื—ืจ ื•ืœืฉืœื•ื— ื”ื•ื“ืขื” ืœืžื ื”ืœ ื”ืžืขืจื›ืช.

ืžืฆื‘ ื—ื•ื˜

ืงื‘ื•ืฆื” XINFO ืžืฉืžืฉ ืœื‘ืงืฉืช ืžื™ื“ืข ืฉื•ื ื” ืขืœ ืฉืจืฉื•ืจ ื•ืงื‘ื•ืฆื•ืชื™ื•. ืœื“ื•ื’ืžื”, ืคืงื•ื“ื” ื‘ืกื™ืกื™ืช ื ืจืื™ืช ื›ืš:

> XINFO STREAM mystream
 1) length
 2) (integer) 13
 3) radix-tree-keys
 4) (integer) 1
 5) radix-tree-nodes
 6) (integer) 2
 7) groups
 8) (integer) 2
 9) first-entry
10) 1) 1524494395530-0
    2) 1) "a"
       2) "1"
       3) "b"
       4) "2"
11) last-entry
12) 1) 1526569544280-0
    2) 1) "message"
       2) "banana"

ื”ืคืงื•ื“ื” ืœืžืขืœื” ืžืฆื™ื’ื” ืžื™ื“ืข ื›ืœืœื™ ืขืœ ื”ื–ืจื ืฉืฆื•ื™ืŸ. ืขื›ืฉื™ื• ื“ื•ื’ืžื” ืงืฆืช ื™ื•ืชืจ ืžื•ืจื›ื‘ืช:

> XINFO GROUPS mystream
1) 1) name
   2) "mygroup"
   3) consumers
   4) (integer) 2
   5) pending
   6) (integer) 2
2) 1) name
   2) "some-other-group"
   3) consumers
   4) (integer) 1
   5) pending
   6) (integer) 0

ื”ืคืงื•ื“ื” ืœืžืขืœื” ืžืฆื™ื’ื” ืžื™ื“ืข ื›ืœืœื™ ืขื‘ื•ืจ ื›ืœ ื”ืงื‘ื•ืฆื•ืช ืฉืœ ื”ืฉืจืฉื•ืจ ืฉืฆื•ื™ืŸ

> XINFO CONSUMERS mystream mygroup
1) 1) name
   2) "Alice"
   3) pending
   4) (integer) 1
   5) idle
   6) (integer) 9104628
2) 1) name
   2) "Bob"
   3) pending
   4) (integer) 1
   5) idle
   6) (integer) 83841983

ื”ืคืงื•ื“ื” ืœืžืขืœื” ืžืฆื™ื’ื” ืžื™ื“ืข ืขื‘ื•ืจ ื›ืœ ื”ืžื ื•ื™ื™ื ืฉืœ ื”ื–ืจื ื•ื”ืงื‘ื•ืฆื” ืฉืฆื•ื™ื ื•.
ืื ืฉื›ื—ืช ืืช ืชื—ื‘ื™ืจ ื”ืคืงื•ื“ื”, ืคืฉื•ื˜ ื‘ืงืฉ ืขื–ืจื” ืžื”ืคืงื•ื“ื” ืขืฆืžื”:

> XINFO HELP
1) XINFO {subcommand} arg arg ... arg. Subcommands are:
2) CONSUMERS {key} {groupname}  -- Show consumer groups of group {groupname}.
3) GROUPS {key}                 -- Show the stream consumer groups.
4) STREAM {key}                 -- Show information about the stream.
5) HELP                         -- Print this help.

ืžื’ื‘ืœืช ื’ื•ื“ืœ ื–ืจื

ื™ื™ืฉื•ืžื™ื ืจื‘ื™ื ืœื ืจื•ืฆื™ื ืœืืกื•ืฃ ื ืชื•ื ื™ื ืœืชื•ืš ื–ืจื ืœื ืฆื—. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืฉื™ืžื•ืฉื™ ืœืืคืฉืจ ืžืกืคืจ ืžืงืกื™ืžืœื™ ืฉืœ ื”ื•ื“ืขื•ืช ื‘ื›ืœ ืฉืจืฉื•ืจ. ื‘ืžืงืจื™ื ืื—ืจื™ื, ื›ื“ืื™ ืœื”ืขื‘ื™ืจ ืืช ื›ืœ ื”ื”ื•ื“ืขื•ืช ืžืฉืจืฉื•ืจ ืœืžืื’ืจ ืงื‘ื•ืข ืื—ืจ ื›ืืฉืจ ืžื’ื™ืขื™ื ืœื’ื•ื“ืœ ื”ืฉืจืฉื•ืจ ืฉืฆื•ื™ืŸ. ืืชื” ื™ื›ื•ืœ ืœื”ื’ื‘ื™ืœ ืืช ื’ื•ื“ืœ ื”ื–ืจื ื‘ืืžืฆืขื•ืช ื”ืคืจืžื˜ืจ MAXLEN ื‘ืคืงื•ื“ื” XADD:

> XADD mystream MAXLEN 2 * value 1
1526654998691-0
> XADD mystream MAXLEN 2 * value 2
1526654999635-0
> XADD mystream MAXLEN 2 * value 3
1526655000369-0
> XLEN mystream
(integer) 2
> XRANGE mystream - +
1) 1) 1526654999635-0
   2) 1) "value"
      2) "2"
2) 1) 1526655000369-0
   2) 1) "value"
      2) "3"

ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-MAXLEN, ืจืฉื•ืžื•ืช ื™ืฉื ื•ืช ื ืžื—ืงื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื›ืฉื”ืŸ ืžื’ื™ืขื•ืช ืœืื•ืจืš ืžื•ื’ื“ืจ, ื›ืš ืฉืœื–ืจื ื™ืฉ ื’ื•ื“ืœ ืงื‘ื•ืข. ืขื ื–ืืช, ื’ื™ื–ื•ื ื‘ืžืงืจื” ื–ื” ืื™ื ื• ืžืชืจื—ืฉ ื‘ืฆื•ืจื” ื”ื™ืขื™ืœื” ื‘ื™ื•ืชืจ ื‘ื–ื™ื›ืจื•ืŸ Redis. ืืชื” ื™ื›ื•ืœ ืœืฉืคืจ ืืช ื”ืžืฆื‘ ื‘ืื•ืคืŸ ื”ื‘ื:

XADD mystream MAXLEN ~ 1000 * ... entry fields here ...

ื”ืืจื’ื•ืžื ื˜ ~ ื‘ื“ื•ื’ืžื” ืฉืœืžืขืœื” ืื•ืžืจ ืฉืื ื—ื ื• ืœื ื‘ื”ื›ืจื— ืฆืจื™ื›ื™ื ืœื”ื’ื‘ื™ืœ ืืช ืื•ืจืš ื”ื–ืจื ืœืขืจืš ืžืกื•ื™ื. ื‘ื“ื•ื’ืžื” ืฉืœื ื•, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื›ืœ ืžืกืคืจ ื’ื“ื•ืœ ืื• ืฉื•ื•ื” ืœ-1000 (ืœื“ื•ื’ืžื”, 1000, 1010 ืื• 1030). ืจืง ืฆื™ื™ื ื• ื‘ืžืคื•ืจืฉ ืฉืื ื—ื ื• ืจื•ืฆื™ื ืฉื”ื–ืจื ืฉืœื ื• ื™ืื—ืกืŸ ืœืคื—ื•ืช 1000 ืจืฉื•ืžื•ืช. ื–ื” ื”ื•ืคืš ืืช ื ื™ื”ื•ืœ ื”ื–ื™ื›ืจื•ืŸ ืœื”ืจื‘ื” ื™ื•ืชืจ ื™ืขื™ืœ ื‘ืชื•ืš Redis.

ื™ืฉ ื’ื ืฆื•ื•ืช ื ืคืจื“ XTRIM, ืฉืขื•ืฉื” ืืช ืื•ืชื• ื”ื“ื‘ืจ:

> XTRIM mystream MAXLEN 10

> XTRIM mystream MAXLEN ~ 10

ืื—ืกื•ืŸ ื•ืฉื›ืคื•ืœ ืžืชืžืฉื›ื™ื

Redis Stream ืžืฉื•ื›ืคืœ ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™ ืœืฆืžืชื™ ืขื‘ื“ื™ื ื•ื ืฉืžืจ ื‘ืงื‘ืฆื™ื ื›ืžื• AOF (ืชืฆืœื•ื ืฉืœ ื›ืœ ื”ื ืชื•ื ื™ื) ื•-RDB (ื™ื•ืžืŸ ืฉืœ ื›ืœ ืคืขื•ืœื•ืช ื”ื›ืชื™ื‘ื”). ื’ื ืฉื›ืคื•ืœ ืฉืœ ืžืฆื‘ ืงื‘ื•ืฆื•ืช ืฆืจื›ื ื™ื ื ืชืžืš. ืœื›ืŸ, ืื ื”ื•ื“ืขื” ื ืžืฆืืช ื‘ืžืฆื‘ "ื‘ื”ืžืชื ื”" ื‘ืฆื•ืžืช ื”ืจืืฉื™, ืื– ื‘ืฆืžืชื™ ื”ืขื‘ื“ ืชื”ื™ื” ืœื”ื•ื“ืขื” ื–ื• ืื•ืชื• ืกื˜ื˜ื•ืก.

ื”ืกืจืช ืืœืžื ื˜ื™ื ื‘ื•ื“ื“ื™ื ืžื–ืจื

ื™ืฉ ืคืงื•ื“ื” ืžื™ื•ื—ื“ืช ืœืžื—ื™ืงืช ื”ื•ื“ืขื•ืช XDEL. ื”ืคืงื•ื“ื” ืžืงื‘ืœืช ืืช ืฉื ื”ืฉืจืฉื•ืจ ื•ืื—ืจื™ื• ืืช ืžื–ื”ื™ ื”ื”ื•ื“ืขื” ืฉื™ืฉ ืœืžื—ื•ืง:

> XRANGE mystream - + COUNT 2
1) 1) 1526654999635-0
   2) 1) "value"
      2) "2"
2) 1) 1526655000369-0
   2) 1) "value"
      2) "3"
> XDEL mystream 1526654999635-0
(integer) 1
> XRANGE mystream - + COUNT 2
1) 1) 1526655000369-0
   2) 1) "value"
      2) "3"

ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื” ื–ื•, ืขืœื™ืš ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืฉื”ื–ื™ื›ืจื•ืŸ ื‘ืคื•ืขืœ ืœื ื™ืฉื•ื—ืจืจ ืžื™ื“.

ื–ืจืžื™ื ื‘ืื•ืจืš ืืคืก

ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื–ืจืžื™ื ืœืžื‘ื ื™ ื ืชื•ื ื™ื ืื—ืจื™ื ืฉืœ Redis ื”ื•ื ืฉื›ืืฉืจ ืœืžื‘ื ื™ ื ืชื•ื ื™ื ืื—ืจื™ื ืื™ืŸ ื™ื•ืชืจ ืืœืžื ื˜ื™ื ื‘ืชื•ื›ื, ื›ืชื•ืคืขืช ืœื•ื•ืื™, ืžื‘ื ื” ื”ื ืชื•ื ื™ื ืขืฆืžื• ื™ื•ืกืจ ืžื”ื–ื™ื›ืจื•ืŸ. ื›ืš, ืœืžืฉืœ, ื”ืกื˜ ื”ืžืžื•ื™ืŸ ื™ื•ืกืจ ืœื—ืœื•ื˜ื™ืŸ ื›ืืฉืจ ื”ืงืจื™ืื” ZREM ืชืกื™ืจ ืืช ื”ืืœืžื ื˜ ื”ืื—ืจื•ืŸ. ื‘ืžืงื•ื ื–ืืช, ื—ื•ื˜ื™ื ืจืฉืื™ื ืœื”ื™ืฉืืจ ื‘ื–ื™ื›ืจื•ืŸ ื’ื ืžื‘ืœื™ ืฉื™ื”ื™ื• ื‘ืคื ื™ื ืืœืžื ื˜ื™ื ื›ืœืฉื”ื.

ืžืกืงื ื”

Redis Stream ืื™ื“ื™ืืœื™ ืœื™ืฆื™ืจืช ืžืชื•ื•ื›ื™ื ืฉืœ ื”ื•ื“ืขื•ืช, ืชื•ืจื™ ื”ื•ื“ืขื•ืช, ืจื™ืฉื•ื ืžืื•ื—ื“ ื•ืžืขืจื›ื•ืช ืฆ'ืื˜ ืœืฉืžื™ืจืช ื”ื™ืกื˜ื•ืจื™ื”.

ื›ืžื• ืฉืืžืจืชื™ ืคืขื ื ื™ืงืœืื•ืก ื•ื™ืจื˜, ืชื•ื›ื ื™ื•ืช ื”ืŸ ืืœื’ื•ืจื™ืชืžื™ื ื‘ืชื•ืกืคืช ืžื‘ื ื™ ื ืชื•ื ื™ื, ื•-Redis ื›ื‘ืจ ื ื•ืชืŸ ืœืš ืืช ืฉื ื™ื”ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”