Redis Stream ááẠRedis áá¬ážááŸááºáž 5.0 ááœáẠááááºáááºáá¬ážáá±á¬ á
ááá¹áááá±áá¬á¡áá»áá¯ážá¡á
á¬ážá¡áá
áºááŒá
áºáááºá
ááá±á¬ááá¬ážá¡áá Redis Stream ááẠáááºááá·áºááœááºážááá¯ááºááá·áºá
á¬áááºážáá
áºáá¯ááŒá
áºáááºá ááá·áºááœááºážááŸá¯áá
áºáá¯á
á®ááœáẠáá®ážááá·áºáááºááŸááºááŸá¯áá
áºáá¯ááŸááááºá áá°áááºážá¡á¬ážááŒáá·áºá ID ááẠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±ážááŒá®áž á¡áá»áááºáá¶ááááºáá
áºáᯠáá«áááºáááºá ááá¯á·ááŒá±á¬áá·áºá áááºááẠUnix "tail -f" command ááẠááŸááºáááºážááá¯ááºááá¯áááºááŒá®áž áá±áá¬á¡áá
áºááᯠá
á±á¬áá·áºáá±á
ááºááœáẠáááºááá·áºááœá¬ážááá²á·ááá¯á· stream ááœááºáá±á¬ááºááŸááááºááŸáá·áºá¡áá»áŸ áá±áá¬á¡áá
áºáá»á¬ážááᯠá¡áá»áááºááŸáá·áºá¡áá»áŸ áááºáá±ážááŒááºážááá¯ááºááẠááá¯á·ááá¯áẠáá±áá¬á¡áá
áºáá»á¬ážááᯠáááºáá¶áááŸáááá¯ááºáá«áááºá "tail -f" áá¯ááºáááºážá
ááºáá»á¬ážá
áœá¬ááẠáá
áºáá¯ááŸáá·áºáá
áºáᯠááœá²ááœá²ááŸá¯áááŸááá² ááá¯ááºáá
áºáá¯ááᯠáá
áºááŒáá¯ááºáááºáááºááá¯ááºááá²á·ááá¯á· áá¯á¶ážá
áœá²áá°áá»á¬ážá
áœá¬ááẠááŒáá¯ážáá
áºáá¯á¡á¬áž áá
áºáá»áááºáááºážááœáẠáá¬ážáá±á¬ááºááá¯ááºáááºááᯠáááááŒá¯áá«á
áá±áá¬á¡áá»áá¯ážá¡á
á¬ážá¡áá
áºá á¡áá»áá¯ážáá»á±ážáá°ážá¡á¬ážáá¯á¶ážááᯠáá¬ážáááºáááºá Redis Stream á áá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááᯠáá
áºá
áááºáá
áºááá¯ááºážáá¯á¶áá°ááœá¬ážáá¬ážááá·áº áá¬áááŸááºááŒá¬áááºááŸááá±áá±á¬ Redis áááºáá±á¬ááºáá¯á¶áá»á¬ážááᯠá¡ááŒááºááŒáá·áºááŒáá«á
áá¯á·á
PUB/SUB ááᯠááŒááºá áá«á
Redis Pub/Sub ááẠááá·áºáá±á¬á·áááºááá¯ážá ááá¯ážááœáẠáááºáá±á¬ááºáá¬ážááŒá®ážáá¬áž ááá¯ážááŸááºážáá±á¬ á á¬ááá¯áá±ážááá¯á·ááŸá¯á áá áºáá áºáá¯ááŒá áºáááºá ááá¯á·áá±á¬áºá ááá¯ážááŸááºážááŸá¯ááẠá á»á±ážááŸá¯ááºážáá áºáá¯ááŒáá·áº áá±á¬ááºáá¬áááº-
- áá¯ááºáá±áá°ááẠá¡ááŒá±á¬ááºážáá áºáá¯áá¯ááŒá±á¬áá·áº áá»ááºááœááºáá«á áááºážáá á¬áááºážááœááºážáá°á¡á¬ážáá¯á¶ážááᯠáá¯á¶ážááŸá¯á¶ážáááºááŒá áºáááºá
- áá¯ááºáá±áá°ááẠáááºážáá á¬áááºážááœááºážáá°á¡á¬ážáá¯á¶ážá ááááºá á¬á¡ááá¡áá»ááᯠááááẠááá¯á¡ááºáááºá
- áá±áá¬ááᯠáá¯ááºáá±á¬ááºáááºááẠááá¯ááá¯ááŒááºáááºá áœá¬ ááœáŸáá·áºáááºáá«á áá¯ááºáá±áá°ááẠáááºážáá á¬áááºážááœááºážáá°áá»á¬ážááᯠá¡áá¯ááºááŸáá·áº áááºááá¯á á±ááá¯ááºáááºá
- á á¬áááºážááœááºážáá°áááºáá»áŸááŸáá·áº á€áááºáá±á·áá»áºááᯠáááºáá»áŸáá»ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºá á± áá¯ááºáá±áá°á ááŒá¬ážáá¶á á¬á¡á¬áž áá¯ááºáá±ááŒá®ážáááºááŸáá·áº áá»ááºáá»ááºážááẠáááºáá±á·áá»áºááᯠáá»ááºááá¯ááºáá«áááºá
- á á¬áááºážááœááºážáá°á¡á¬ážáá¯á¶ážááẠáá áºáá»áááºáááºážááœáẠáááºáá±á·áá»áºááᯠáááºáá¶áááŸááááºááŒá áºáááºá á á¬áááºážááœááºážáá°áá»á¬ážááẠáá°áá®áá±á¬áááºáá±á·áá»áºááᯠáá¯ááºáá±á¬ááºááŒááºážá¡á á®á¡á á¥áºá¡áá±á«áº áá áºáááºážáááºážááŸáá·áº ááá±á¬áá°áá®ááá«áááºá
- á á¬áááºážááœááºážáá°ááẠáááºáá±á·áá»áºááᯠá¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááŒá®ážááŒá±á¬ááºáž á¡áááºááŒá¯ááẠáááºáááºáá¬ážááá·áº ááá¹ááá¬áž áááŸááá«á á á¬áááºážááœááºážáá°áá áºáŠážááẠáááºáá±á·áá»áºááᯠáááºáá¶áááŸáááŒá®áž áá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºáž áá»ááºááœá¬ážáá«áá áá¯ááºáá±áá°ááẠáááºážá¡ááŒá±á¬ááºážááᯠááááŸááááºááá¯ááºáá«á
á á¬áááºážááŒááºáááºáá«á
Redis List ááẠread commands áá»á¬ážááᯠááááºááá¯á·ááŒááºážááᯠáá¶á·ááá¯ážáá±ážááá·áº áá±áá¬ááœá²á·á ááºážáá¯á¶ááŒá áºáááºá á á¬áááºážáá¡á ááá¯á·ááá¯áẠá¡áá¯á¶ážá០áááºáá±á·áá»áºáá»á¬ážááᯠááá·áºááœááºážáááºááá¯ááºáááºá á€ááœá²á·á ááºážáá¯á¶á¡áá±á«áºá¡ááŒá±áá¶á áááºáááŒáá·áºáá±ááŸá¯á áá áºá¡ááœáẠáá±á¬ááºážááœááºáá±á¬ stack ááá¯á·ááá¯áẠáááºážá á®ááŒááºážááᯠááŒá¯áá¯ááºááá¯ááºááŒá®ážá ááá á¹á á¡áá»á¬ážá á¯ááœáẠáááºážááẠáá¯á¶áá±á¬ááºáááºááŒá áºáááºá Redis Pub/Sub á០á¡ááá ááœá¬ááŒá¬ážáá»ááºáá»á¬áž-
- áááºáá±á·áá»áºááᯠáá¯á¶ážá áœá²áá°áá áºáŠážáᶠáá±ážááá¯á·áááºá ááááá¯á¶ážáááºáááº-ááááºááá¯á·áá¬ážáá±á¬áá±á¬ááºáááºááẠáá±áá¬ááᯠáŠážá áœá¬áááºáá¶áááŸááááºááŒá áºáááºá
- Clint ááẠáááºáá±á·áá»áºáá áºáá¯á á®á¡ááœáẠáááºááŸá¯ááŒááºážáá¯ááºáááºážááᯠá áááºááá«áááºá á á¬áááºážááẠáá±á¬ááºáááºáá»á¬ážá¡ááŒá±á¬ááºáž áá¬ááŸááááá«á
- áá áºá á¯á¶áá áºáá±á¬ááºá áááºážááá¯á·ááá¯áááºááŒááºáž ááá¯á·ááá¯áẠááŒááºáá¬ážá áœá¬ ááá»ááºááá»ááºáž áááºáá±á·áá»áºáá»á¬ážááᯠááááºážáááºážáá¬ážáááºá á¡áááºá áááºááẠáá±áá¬áá áºááá¯á· áá°ážáá»ááẠRedis áá¬áá¬ááᯠá á®á ááºáááºááŸááºáá«áá á áá áºá áá¯á¶ááŒááºá áááºáá»áááŸá¯ááẠáááááá¬áᬠááá¯ážáá¬áá«áááºá
ááá¯ááºááá¯ááºáá¯ááºááœáŸáá·áºááẠáááá«ááºáž
áá¯ááºááœáŸáá·áºááŸá¯áá áºáá¯ááá¯á· ááá·áºááœááºážááŒááºážá
á¡ááœá²á· XADD áá¯ááºááœáŸáá·áºááŸá¯ááá¯á· áááºááœáá·áºá¡áá áºáá áºáᯠáááºááá·áºáááºá ááŸááºáááºážáá áºáá¯ááẠá á¬ááŒá±á¬ááºážáá áºáá¯áá»áŸáá¬ááá áááºážááœáẠáá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áá±á¬áá±á¬á·áááºááá¯ážá¡ááœá²áá»á¬ážáá«ááŸááááºá ááá¯á·ááŒá±á¬áá·áºá ááá·áºááœááºážááŸá¯áá áºáá¯á á®ááẠááœá²á·á ááºážáááºáá±á¬ááºáá¬ážááŒá®ážááŒá áºááŒá®áž CSV ááá¯ááºáá áºáá¯á ááœá²á·á ááºážáá¯á¶ááŸáá·áº áááºáá°áááºá
> XADD mystream * sensor-id 1234 temperature 19.8
1518951480106-0
á¡áááºááá°áá¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááẠ(áá±á¬á·) âmystreamâ ááŸáá·áº âsensor-idâ ááŸáá·áº âtemperatureâ áááºááá¯ážáá»á¬áž â1234â ááŸáá·áº â19.8â á¡áá®ážáá®ážááŸááá±á¬ stream ááá¯á· á¡ááœááºááŸá áºáá¯ááᯠáá±á«ááºážááá·áºáá«áááºá áá¯áááá¡ááŒááºážá¡áá¯á¶á¡áá±ááŒáá·áºá ááœááºáááºážááẠentry ááœááºáááºááŸááºáá±ážááá·áº identifier áá áºáá¯ááá¯áá°ááẠ- ဠidentifier ááẠstream á¡ááœááºážááŸá entry áá áºáá¯á á®ááᯠáá®ážááŒá¬ážááœá²ááŒá¬ážáááºááŸááºáá±ážáá«áááºá ááá¯á·áá±á¬áºáááºážá á€ááá á¹á ááœáẠRedis ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠID á¡áá áºáá áºáá¯áá¯ááºáá±ážá á±ááá¯áá±á¬ááŒá±á¬áá·áº * ááá¯áá»á±á¬áºááŒááºáá²á·áááºá ID á¡áá áºáá áºáá¯á á® ááá¯ážáá¬áááºá ááá¯á·ááŒá±á¬áá·áºá á¡áá áºáááºáá±á¬ááºááŸá¯ááá¯ááºážááœáẠááááºááá·áºááœááºážááŸá¯áá»á¬ážááŸáá·áº áááºá ááºá ááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬ identifier ááŸááá«áááºá
á¡ááŸááºá¡áá¬ážáá±á¬áºáááº
á¡áááá·áºááŒáá·áº áááºááœáá·áº ID ááᯠááŒááºáá±ážáááºá XADDá¡ááá¯ááºážááŸá áºááá¯ááºážáá«áááºáááº-
{millisecondsTime}-{sequenceNumber}
áá®áá®á
áá¹ááá·áºá¡áá»ááẠâ Unix á¡áá»áááºááẠáá®áá®á
áá¹ááá·áºáá»á¬áž (Redis áá¬áá¬á¡áá»áááº)á ááá¯á·áá±á¬áºá áááºááŸáá¡áá»áááºááẠááááºááá¯ááºáá°ážáá²á·ááá·áºá¡áá»áááºááẠáá°áá®áá±áá«á ááá¯á·ááá¯áẠááááºááá¯ááºáá°ážááŸá¯á á¡áá»áááºáá¶ááááºááᯠá¡áá¯á¶ážááŒá¯áááºááŒá
áºáááºá ááá¯á·ááŒá±á¬áá·áºá áá¬áá¬á¡áá»áááºááẠá¡áá»áááºááá¯á·ááŒááºááœá¬ážáá«áá ááœá²ááŒá¬ážáááºááŸááºáá°á¡áá
áºááẠááá¯ážááŒáá·áºááŸá¯ááá¯ááºááá¯ááºááŸá¯ááᯠáááºáááºááááºážááááºážáá¬ážáááºááŒá
áºáááºá
sequenceNumber áá°áá®áá±á¬ áá®áá®á áá¹ááá·áºá¡ááœááºáž áááºáá®ážáá¬ážáá±á¬ ááŸááºáááºážáá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯áááºá sequenceNumber ááááºáááºáá±á¬ááºááŸá¯ááẠ1 ááá¯ážáá¬áá«áááºá á¡ááŒá±á¬ááºážááŸá¬á sequenceNumber 64 bits á¡ááœááºá¡á á¬ážááŸáááŒá®áž áááºááœá±á·ááœáẠáááºááẠáá áºáá®áá®á áá¹ááá·áºá¡ááœááºáž áá¯ááºáá±ážááá¯ááºááá·áº ááŸááºáááºážá¡áá±á¡ááœááºá¡áá±á«áº ááá·áºáááºáá»ááºááá¯á· ááááºááá·áºáá«á
ááá¯ááá¯á·áá±á¬ ááœá²ááŒá¬ážáááºááŸááºááŸá¯áá¯á¶á á¶ááẠááááá áºáá»ááºááœáẠáá°ážáááºážáá¯á¶ááááºá á¡áá¯á¶á¡ááŒááºáááŸááá±á¬ á á¬áááºáá°ááẠá¡áá»áááºááẠá¡áááºááŒá±á¬áá·áº áááºááŸááºáá±á¬áºááŒááŸá¯á áá áºá áááºáá áºááá¯ááºážááŒá áºáááºááᯠá¡á¶á·ááŒáááá±áááºá á¡ááŒá±á¬ááºážáááºážááŸá¬ Redis stream áá»á¬ážááẠID ááŒáá·áº á¡ááá¯ááºážá¡ááŒá¬ážáá±ážááœááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá á¡áá±á¬ááºá¡áá¬ážááẠááŸááºáááºážáááºáá®ážááá·áºá¡áá»áááºááŸáá·áº áááºá ááºáá±áá±á¬ááŒá±á¬áá·áºá áááºážááẠá¡áá»áááºá¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážááᯠáá±ážááŒááºážááẠááŒá áºááá¯ááºáááºá command ááá¯ááŒáá·áºáá²á·á¡áá« áááá»áá²á· á¥ááá¬áá áºáá¯ááᯠááŒáá·áºáá«áááºá XRANGE.
á¡ááŒá±á¬ááºážáá áºáá¯áá¯ááŒá±á¬áá·áº á¡áá¯á¶ážááŒá¯áá°ááẠáááºážáááá¯ááºááá¯áẠidentifier ááᯠáááºááŸááºááẠááá¯á¡ááºáá«áá á¥ááá¬á á¡áá»áá¯á·áá±á¬ ááŒááºáá áá áºááŸáá·áº áááºá ááºáá±áá«áá áááºážááᯠcommand ááá¯á·áá±ážááá¯á·ááá¯ááºáá«áááºá XADD * á¡á á¬áž á¡á±á¬ááºáá«áá¯á¶á¡ááá¯ááºáž
> XADD somestream 0-1 field value
0-1
> XADD somestream 0-2 foo bar
0-2
á€ááá á¹á ááœáẠáááºááẠID ááá¯ážááŒááºážááᯠáááºááá¯ááºááá¯áẠá á±á¬áá·áºááŒáá·áºááááºááᯠáááááŒá¯áá«á áá»áœááºá¯ááºááá¯á·áá¥ááá¬ááœááºá á¡áááá·áºáá¯á¶ážáááºááŸááºáá°ááẠ"0-1" ááŒá áºáá±á¬ááŒá±á¬áá·áº command ááẠ"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
áá¯ááºááœáŸáá·áºááŸá¯áá áºáá¯á¡ááœáẠááŸááºáááºážá¡áá±á¡ááœááº
command ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº stream áá áºáá¯ááŸá record á¡áá±á¡ááœááºááᯠááá°ááá¯ááºáááºá XLEN. áá»áœááºá¯ááºááá¯á·á á¥ááá¬á¡á¬ážááŒáá·áºá ဠcommand ááẠá¡á±á¬ááºáá«áááºááá¯ážááᯠááŒááºáá±ážáááá·áºáááº-
> 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"
ááŒááºáá±ážáá¬ážáá±á¬ ááŸááºáááºážáá áºáá¯á á®ááẠááŒááºá ááºááŸá áºáá¯á áááºážáá»ááºážáá áºáá¯ááŒá áºáááº- á¡ááŸááºá¡áá¬ážááŒá¯ááŒááºážááŸáá·áº áá±á¬á·áááºááá¯ážá¡ááœá²áá»á¬ážá á¬áááºážá ááŸááºáááºážáááºááŸááºááŒááºážáá»á¬ážááẠá¡áá»áááºááŸáá·áºáááºááá¯ááºáááºáᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬áá¬ážááŒá®ážááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡áá»áááºá¡ááá¯ááºážá¡áá¬áá áºáá¯á á¡ááá¯ááºážá¡áá¬áá áºáá¯á¡á¬áž áá±á¬ááºážááá¯ááá¯ááºáá«áááºá ááá¯á·áá¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºážááá¯áá»ááºááœáẠáááºááŸááºáááºááŸááºááŸá¯ á¡ááŒáá·áºá¡á á¯á¶ááá¯ááºáá±á¬áºáááºáž Unix á¡áá»áááºááá¯áᬠáááºááŸááºááá¯ááºááŒá®áž áááºá ááºá¡ááá¯ááºážááᯠáá»ááºááŸááºáá¬ážáááºá sequenceNumber. ááœá²ááŒá¬ážáááºááŸááºááŸá¯á áá»ááºááŸááºáá¬ážáá±á¬á¡ááá¯ááºážááᯠá¡ááá¯ááºážá¡ááŒá¬ážáá¡á ááœáẠáá¯áá¡ááŒá Ạá¡ááá¯á¡áá»á±á¬ááºáááºááŸááºáááºááŒá áºááŒá®áž á¡ááá¯ááºážá¡ááŒá¬ážáá¡áá¯á¶ážááœáẠááŒá áºááá¯ááºáá»á±á¡áá»á¬ážáá¯á¶ážáááºááá¯ážá¡ááŒá ẠáááºááŸááºáááºááŒá áºáááºá á¡á±á¬ááºááœáẠááŸá áºáá®áá®á áá¹ááá·áºá¡ááœá¬á¡áá±ážááᯠáááºáá±á¬ááºážááá¯ááá¯ááºáá¯á¶ á¥ááá¬áá áºáá¯ááŒá áºáááºá
> XRANGE mystream 1518951480106 1518951480107
1) 1) 1518951480106-0
2) 1) "sensor-id"
2) "1234"
3) "temperature"
4) "19.8"
áá»áœááºá¯ááºááá¯á·ááœáẠá€á¡ááœá¬á¡áá±ážááœáẠááá·áºááœááºážááŸá¯áá áºáá¯áᬠááŸááááºá ááá¯á·áá±á¬áº á¡á á áºá¡ááŸááºáá±áá¬á¡ááœá²áá»á¬ážááœáẠááŒááºáá±ážááá·áºááááºááẠááŒá®ážáá¬ážááá¯ááºáááºá áá®á¡ááœááºááŒá±á¬ááºá· XRANGE COUNT ááœá±ážáá»ááºááŸá¯ááᯠáá±á¬ááºáá¶áááºá ááá¬áááᯠáááºááŸááºááŒááºážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠááááá¯á¶áž N ááŸááºáááºážáá»á¬ážááᯠááá¯ážááá¯ážááŸááºážááŸááºáž áááŸáááá¯ááºáá«áááºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºááẠN ááŸááºáááºážáá»á¬áž (pagination) ááᯠááá°ááẠááá¯á¡ááºáá«á áá±á¬ááºáá¯á¶ážáááŸááá¬ážáá±á¬ ID ááᯠá¡áá¯á¶ážááŒá¯á áááºážááᯠááá¯ážááŒáŸáá·áºááá¯ááºáááºá sequenceNumber áá áºáá¯ááŒá®ážáá áºáᯠáááºáá±ážáá«á á¡á±á¬ááºáá« á¥ááá¬ááœáẠá€á¡áá¬ááᯠááŒáá·áºááŒáá«á áá¯á·á áá»áœááºá¯ááºááá¯á·ááẠááŒááºá áẠ10 áá¯ááᯠá áááºááá·áºááœááºážáá«áááºá XADD (mystream ááẠá¡á áááºá¡ááá¯ááºáž 10 áá¯ááŸáá·áº ááŒáá·áºáá±ááŒá®áᯠáá°ááá«áááºá) command áá áºáá¯áá»áŸáẠááŒááºá áẠ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"
áá±á¬ááºáááºááŒááºá
ááºááŸá
áºáá¯ááŒáá·áº áááºááá²áá² áááºáááºáá¯ááºáá±á¬ááºáááºá áá»áœááºá¯ááºááá¯á· áááºáá¶áááŸááá¬ážáá±á¬ áá±á¬ááºáá¯á¶áž ID ááᯠááœá±ážáá»ááºááẠááá¯á¡ááºáá«áááºá ááá¯ááá¯áááºááŸá¬ 1519073279157-0 ááŸáá·áº 1 ááá¯á· ááá·áºááẠááá¯á¡ááºááẠsequenceNumber.
á€á¡ááŒá±á¡áá±ááœáẠ1519073279157-1 ááœáẠáááŸááá¬áá±á¬ ID ááᯠááá¯áá±á«áºááá¯ááŸá¯á¡ááœáẠá¡ááá¯ááºážá¡ááŒá¬ážá¡ááŒááºážá¡áá¯á¶á¡áá
áºá á¡á
á¡áá
áºá¡ááŒá
Ạááá¯á¡áá¯á¶ážááŒá¯ááá¯ááºáá«ááŒá® 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)) ááŒá áºááŒá®ážá ááá¯á·áá±á¬áẠMááŒááºá ááºáá»á¬ážááᯠááŒááºáá±ážááẠO(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 ááá¯á¡áá¯á¶ážááŒá¯áá¯á¶ááœáẠá¡ááŒá±áá¶ááœá²ááŒá¬ážáá»ááºáá»á¬áž ááŸááá«áááºá
- áááºáá±á·áá»áºá¡áá áºáá áºáá¯á á®ááᯠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº á á¬áááºážááœááºážáá°ááá¯ááºážáᶠáá±ážááá¯á·áá«áááºá á€á¡ááŒá¯á¡áá°ááẠáááºáá±á·áá»áºá¡áá áºááᯠá á¬áááºážááœááºážáá° áá áºáŠážáááºážáᬠáááºááá¯ááºá á±ááá·áº Redis List ááᯠááááºááá¯á·áá¬ážááŒááºážááŸáá·áº ááœá²ááŒá¬ážáááºá
- Redis Pub/Sub ááœáẠáááºáá±á·áá»áºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá±á·ááœá¬ážááŒá®áž áááºáá±á¬á·á០ááááºááŒá²áá±áá±á¬áºáááºážá ááá¯ááºááá¯ááºááœáŸáá·áºááŒááºážááœáẠáááºáá±á·áá»áºá¡á¬ážáá¯á¶ážááᯠá¡ááá·áºá¡áááºáááŸá ááááºážááááºážáá¬ážáá«ááẠ(áá±á¬ááºáááºá ááŸááºážááŸááºážáááºážáááºáž áá»ááºáá áºááŒááºážáááŒá¯áá«á)á
- 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 ááœá±ážáá»ááºááŸá¯ááẠááœá±ážáá»ááºááá¯ááºáááºáᯠáááááŒá¯áá«á á¡ááŸááºááŸá¬á áá áºáá¯áááºážáá±á¬ ááá¯á¡ááºááá·áº command option ááŸá¬ áááºááá¯ááºáᬠá¡áá»á¬ážáá¯á¶áž identifier ááŸáá·áºá¡áá° stream áá»á¬ážá á¬áááºážááᯠáááºááŸááºáá±ážááá·áº STREAMS ááœá±ážáá»ááºááŸá¯ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠâSTREAMS mystream 0â áá¯áá±ážáá¬ážáá²á·ááẠ- áá»áœááºá¯ááºááá¯á·ááẠâ0-0â áááºááŒá®ážáá±á¬áááºááŸááºá áá áºááŒáá·áº mystream á á®ážááŒá±á¬ááºážáááŸááºáááºážá¡á¬ážáá¯á¶ážááᯠáááºáá¶ááá¯áá«áááºá á¥ááá¬á០áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá command ááẠthread á¡áá»á¬ážá¡ááŒá¬ážááᯠááá»áááºáááºážááœáẠá á¬áááºážááœááºážááá¯ááºáá±á¬ááŒá±á¬áá·áº thread á á¡áááºááᯠááŒááºáá±ážáá«áááºá á¥ááᬠ"STREAMS mystream otherstream 0 0" áᯠáá±ážááá¯ááºáááºá STREAMS ááœá±ážáá»ááºááŸá¯ááŒá®ážáá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠááá¯á¡ááºáá±á¬ áá¯ááºááœáŸáá·áºááŸá¯á¡á¬ážáá¯á¶ážá á¡áááºáá»á¬ážááᯠáŠážá áœá¬áá±ážáᬠááœá²ááŒá¬ážáááºááŸááºááá·áºá á¬áááºážáá áºáá¯áᬠááá¯á¡ááºááŒá±á¬ááºáž áá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á
á€ááá¯ážááŸááºážáá±á¬áá¯á¶á á¶ááœáẠcommand ááŸáá·áºááŸáá¯ááºážááŸááºáá«ááá°ážááŒá¬ážáá±á¬á¡áá¬áááŸááá«á XRANGE. áá«áá±ááá·áº á áááºáááºá á¬ážááá¯á·áá±á¬ááºážáá¬á ááœááºááœááºáá°áá° ááŸáá·áºááá¯á·ááááºá XREAD Blocking command ááá¯á· BLOCK á¡ááŒá±á¬ááºážááŒáá»ááºááᯠáááºááŸááºááŒááºáž-
> XREAD BLOCK 0 STREAMS mystream $
á¡áááºáá±á¬áºááŒáá« á¥ááá¬ááœááºá BLOCK ááœá±ážáá»ááºááŸá¯á¡áá
áºááᯠ0 áá®áá®á
áá¹ááá·áºááŒáá·áº á¡áá»áááºááœááºáááºááŸááºáá¬ážááẠ(áááºážááẠá¡ááá·áºá¡áááºáááŸáá
á±á¬áá·áºááá¯ááºážááŒááºážááᯠááá¯ááá¯áááº)á ááá¯á·á¡ááŒááºá mystream á
á®ážááŒá±á¬ááºážá¡ááœáẠáá¯á¶ááŸááºáááºááŸááºááŸá¯á
áá
áºááᯠááŒááºáááºážááá·áºá¡á
á¬áž á¡áá°ážáááºááŸááºáá° $ ááᯠáá»á±á¬áºááœá¬ážáá²á·áááºá á€á¡áá°ážáááºááŸááºáá»ááºááᯠááá¯ááá¯áááºá XREAD mystream ááŸá á¡áá»á¬ážáá¯á¶áž identifier ááᯠidentifier á¡ááŒá
Ạá¡áá¯á¶ážááŒá¯ááá«áááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á· á
áááºáá¬ážáá±á¬ááºááá·áºá¡áá»áááºááŸá
ááŒá®áž áááºáá±á·áá»áºá¡áá
áºáá»á¬ážááá¯áᬠáááºáá¶áááŸááá«áááºá á¡áá»áá¯á·áá±á¬áááºážáááºážáá»á¬ážááœááºáááºážááẠUnix "tail -f" command ááŸáá·áºáááºáá°áááºá
BLOCK option ááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠá¡áá°ážáááºááŸááºáá° $ ááá¯á¡áá¯á¶ážááŒá¯áááºáááá¯á¡ááºááŒá±á¬ááºáž áááááŒá¯áá«á áá¯ááºááœáŸáá·áºááŸá¯ááœáẠááŸáááŒá®ážáá¬áž áááºááá·áº identifier ááá¯áááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá á¡áááºá á¡ááœá²á·ááẠáá»áœááºá¯ááºááá¯á·ááá±á¬ááºážááá¯ááŸá¯ááᯠááááºááá¯á·ááŒááºážáááŸááá² áá»ááºáá»ááºážáá±á¬ááºááœááºáá±ážááá¯ááºáá«á áááºážááẠááá¯ááá¯á·áá¯ááºáá±á¬ááºáááºá ááá¯á·ááá¯ááºáá«á áááºážááẠááááºááá¯á·ááœá¬ážáááºááŒá áºáááºá
ááááºááá¯á·ááŒááºážá XREAD á á¬ááœá²áá»á¬ážá áœá¬ááá¯áááºáž áá áºááŒáá¯ááºááẠáá¬ážáá±á¬ááºááá¯ááºáááºá áááºážááá¯á·á á¡áááºáá»á¬ážááᯠáááºáááºááŸááºááẠááá¯á¡ááºáá«áááºá á€ááá á¹á ááœááºá command ááẠáá±áá¬áááºáá¶áááŸáááá·áº ááááá¯á¶ážá á®ážááŒá±á¬ááºážáááŸááºáááºážááᯠááŒááºáá±ážáááá·áºáááºá áá±ážáá¬ážáá±á¬á á¬ááœá²á¡ááœáẠááááºááá¯á·áá¬ážáá±á¬ ááááá¯á¶ážá á¬áááºážááœááºážáá°ááẠáá±áá¬ááᯠáŠážá áœá¬áááŸááááºááŒá áºáááºá
á á¬ážáá¯á¶ážáá°á¡á¯ááºá á¯áá»á¬áž
á¡áá»áá¯á·áá±á¬ áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááœááºá á á¬ááœá²áá áºáá¯á¡ááœááºáž á á¬áááºážááœááºážáá° áááºáá±á¬ááºááœáá·áºááᯠááá·áºáááºááá¯áá«áááºá áááºážááẠá¡áá¯á¶ážáááºááá¯ááºááá·áº á¥ááá¬áá áºáá¯ááẠá á¬ááœá²áá áºáá¯á០ááá°áá®áá±á¬ áááºáá±á·áá»áºáá»á¬ážááᯠáááºáá¶áááŸáááá·áº á¡áá¯ááºááá¬ážáá»á¬ážááŸáá·áº áááºáá±á·áá»áºáááºážá á®ááŒááºážááŒá áºááŒá®áž áááºáá±á·áá»áºáá¯ááºáá±á¬ááºááŒááºážááᯠá¡ááá¯ááºážá¡áá¬á¡áá ááœáá·áºááŒá¯áá±ážáááºááŒá áºáááºá
áá»áœááºá¯ááºááá¯á·ááœáẠá á¬áááºážááœááºážáá° áá¯á¶ážáŠáž 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 áá¯áá±á«áºáá±á¬ á¡áá°á¡áááá¯á¡áá¯á¶ážááŒá¯áááºá á€á¡áá°á¡áááẠáá¯ááºááœáŸáá·áºááŸá¯áá
áºáá¯ááŸáá±áá¬ááá¯áááºáá¶áááŸáááá·áº pseudo-á
á¬áááºážááœááºážáá°ááŸáá·áºáááºáá°áá±á¬áºáááºážá á¡áá»áá¯á·áá±á¬á¡á¬ááá¶áá»ááºáá»á¬ážááá¯áá±ážáá±á¬ááºááŒá®áž á¡á¯ááºá
á¯á¡ááœááºážá
á¬áááºážááœááºážáá°á¡áá»á¬ážá¡ááŒá¬ážá á¡ááŸááºááááºáá±á¬ááºááœááºáá±ážáááº-
- áááºáá±á·áá»áºáá áºáá¯á á®ááᯠá¡ááœá²á·á¡ááœááºáž ááá°áá®áá±á¬ á á¬áááºážááœááºážáá°áᶠáá±ážááá¯á·áááºá
- á¡ááœá²á·áá áºáá¯á¡ááœááºážá á á¬áááºážááœááºážáá°áá»á¬ážááᯠá á¬áá¯á¶ážá¡ááŒá®ážá¡áá±ážáá áºáá¯ááŒá áºááá·áº áááºážááá¯á·áá¡áááºááŒáá·áº ááœá²ááŒá¬ážáááºááŸááºáááºá á á¬áááºážááœááºážáá°áá áºáŠážááẠá¡ááœá²á·á០áá±áá¹ááá¯ááºááœááºááœá¬ážáá«áá áá°ááẠáááºážáááá¯ááºááá¯ááºáá°ážááŒá¬ážáá±á¬á¡áááºááᯠá¡áá¯á¶ážááŒá¯á á¡ááœá²á·ááá¯á· ááŒááºáááºáá±á¬ááºááŸáááá¯ááºáá«áááºá
- á á¬ážáá¯á¶ážáá°á¡á¯ááºá á¯ááá¯ááºážááẠ"áááááááºááá±ážáá±á¬ááááºážá áá¬áž" ááá±á¬ááá¬ážááᯠááá¯ááºáá¬áááºá á á¬áááºážááœááºážáá°ááẠáááºáá±á·áá»áºá¡áá áºáá»á¬áž áá±á¬ááºážááá¯áá±á¬á¡áá«á áááºážááẠá¡ááœá²á·á¡ááœááºážááŸá á á¬áááºážááœááºážáá°áᶠááááºá ááá±ážááá¯á·áá²á·áá°ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážááá¯áᬠáááºáá¶áááŸáááá¯ááºáá«áááºá
- á á¬áááºážááœááºážáá°á០áááºáá±á·áá»áºááᯠá¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºáá²á·ááŒá±á¬ááºáž ááŒááºáá¬ážá áœá¬ á¡áááºááŒá¯ááẠá¡áááá·áºáá áºáᯠááŸááá«áááºá á€á¡áááá·áºááᯠááá±á«áºááá»ááºáž áá±á¬ááºážááá¯áá¬ážáá±á¬ áááºáá±á·áá»áºááẠ"ááá¯ááºážáá¶á·" á¡ááŒá±á¡áá±ááœáẠááŸááá±áááºááŒá áºáááºá
- á á¬ážáá¯á¶ážáá°á¡ááœá²á·á¡ááœááºážá á á¬áááºážááœááºážáá°ááá¯ááºážááẠáá°á·áá¶áá±ážááá¯á·áá²á·ááá·áº áááºáá±á·áá»áºááŸááºáááºážááᯠáá±á¬ááºážááá¯ááá¯ááºáá±á¬áºáááºáž ááá¯ááºáá±á¬ááºááá±ážáá« (âááá¯ááºážáá¶á·â á¡ááŒá±á¡áá±ááœááº)
áá áºáááºážá¡á¬ážááŒáá·áº á¡á¯ááºá á¯á á¡ááŒá±á¡áá±ááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž áá±á¬áºááŒááá¯ááºáááºá
+----------------------------------------+
| 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)
+----------------------------------------+
ááá¯á¡áá« Consumer Group á¡ááœáẠá¡ááá ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááŸáá·áº áááá»áœááºážááẠá¡áá»áááºáá±á¬ááºááŒá®á
- XGROUP á¡á¯ááºá á¯áá»á¬ážááá¯áááºáá®ážáááºá áá»ááºáá®ážáááºááŸáá·áºá á®áá¶ááá·áºááœá²áááºá¡áá¯á¶ážááŒá¯áááºá
- XREADGROUP Group ááŸáááá·áº stream áá»á¬ážááá¯áááºáá±á·ááŸááááºá
- XACK - á€á¡áááá·áºáá±á¬áºááẠá á¬áááºážááœááºážáá°ááᯠáááºáá±á·áá»áºááᯠá¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááŒá®ážááŒá áºááŒá±á¬ááºáž á¡ááŸááºá¡áá¬ážááŒá¯ááœáá·áºááŒá¯áááºá
á á¬ážáá¯á¶ážáá°á¡á¯ááºá á¯ááá¯áááºáá®ážááŒááºážá
mystream ááŸááá±ááŒá®áᯠáá°áááŒáá«á áá¯á·á ááá¯á·áá±á¬áẠgroup creation command ááẠá¡á±á¬ááºáá«á¡ááá¯ááºáž ááŒá áºáááá·áºáááºá
> XGROUP CREATE mystream mygroup $
OK
á¡ááœá²á·áá
áºáá¯áááºáá®ážáá±á¬á¡áá«ááœááºá á¡ááœá²á·ááẠáááºáá±á·áá»áºáá»á¬ážáááºáá¶áááŸáááá·áºá¡áá»áááºááŸá
áááºá identifier áá
áºáá¯ááá¯ááŒááºáááºážááá«áááºá áááºáá±á·áá»áºá¡áá
áºá¡á¬ážáá¯á¶ážááᯠáááºáá¶ááá°ááá¯áá«áá áá»áœááºá¯ááºááá¯á·ááẠá¡áá°ážáááºááŸááºáá±ážááá·áº $ (áá»áœááºá¯ááºááá¯á·á á¡áááºáá±á¬áºááŒáá« á¥ááá¬á¡ááá¯ááºáž) ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá á¡áá°ážáááºááŸááºáá°á¡á
á¬áž 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"
á¡áááºáá« command ááẠverbatim ááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž áááºááẠá
"áá»áœááºá¯ááºááẠmygroup á¡ááœá²á·áááºáá áºáŠážááŒá áºááá·áº á¡á²áá áºá á á¬áááºážááœááºážáá°ááẠáá»áœááºá¯ááºááá±á á®ážááŒá±á¬ááºážá០áááºáá±á·áá»áºáá áºá á±á¬ááºááᯠááááºá áááºáá°áá áºáŠážáá áºáá±á¬ááºáá¶á០ááá±ážááá¯á·áá°ážáá±á¬ áááºáá±á·áá»áºáá áºáá¯ááᯠáááºááá¯áá«áááºá"
á á¬áááºážááœááºážáá°áá áºáŠážááẠá¡ááœá²á·áá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá áºáá¯áá¯ááºáá±á¬ááºááá·áºá¡áá«ááá¯ááºážá áááºážááẠá¡ááœá²á·á¡ááœááºáž ááááááá¯ááºáááá áá°ážáá°ážááŒá¬ážááŒá¬ážááœá²ááŒá¬ážáááºááŸááºááŒá®áž áááºážáá¡áááºááᯠáá±ážááá«áááºá á¡áááºáá±á¬áºááŒáá« command ááœáẠááá¯ááá¯á¡áá±ážááŒá®ážáá±á¬á¡áá±ážá áááºá¡áá»ááºáá áºáá¯ááŸáááẠ- á¡áá°ážáááºááŸááºáá° ">"á á€á¡áá°ážáááºááŸááºáá°ááẠáááºáá±á·áá»áºáá»á¬ážááᯠá á áºáá¯ááºááŒá®áž ááááºá ááá±ážááá¯á·áá°ážáá±á¬ á á¬áá»á¬ážááá¯áᬠáá»ááºáá¬ážáááºá
ááá¯á·á¡ááŒááºá á¡áá°ážááá á¹á áá»á¬ážááœáẠáááºááẠ0 ááá¯á·ááá¯áẠá¡ááŒá¬ážááŸááºáááºáá±á¬ identifier áá²á·ááá¯á·áá±á¬ áááá·áº identifier ááᯠáááºááŸááºááá¯ááºáááºá á€ááá á¹á ááœááºá¡áááá·áº XREADGROUP áááºááŸááºáá¬ážáá±á¬ á á¬áááºážááœááºážáá° (Alice)áᶠáá±ážááá¯á·áá¬ážááá·áº "ááá¯ááºážáá¶á·" á¡áá±á¡áá¬ážááŒáá·áº áááºáá±á·ááºá»ááŸááºáááºážááᯠááá·áºáᶠááŒááºáá±ážáááºááŒá áºáá±á¬áºáááºáž á¡áááá·áºááᯠá¡áá¯á¶ážááŒá¯á á¡ááá¡ááŸááºáááŒá¯ááá±ážáá«á XACK.
ááœá±ážáá»ááºá áá¬áááŸááá² ID 0 ááᯠáá»ááºáá»ááºážáááºááŸááºááŒááºážááŒáá·áº á€á¡ááŒá¯á¡áá°ááᯠáá»áœááºá¯ááºááá¯á· á ááºážáááºááá¯ááºáááºá COUNT á¥á®áž. áá»áœááºá¯ááºááá¯á·ááẠááá¯ááºážáá¶á·áá¬ážáá±á¬ áááºáá±á·áá»áºááᯠááá¯ážááá¯ážááŸááºážááŸááºáž ááŒááºááááºá ááá¯ááá¯áááºááŸá¬á apple message ááŒá áºáááº-
> 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 á¡ááœá²á·ááẠBob ááẠáááºáá±á·áá»áº ááŸá áºáá¯ááẠááá¯ááá±á¬ááºážáá«á ááœáŸááºááŒá¬ážáá»ááºááẠá¡áá°ážáááºááŸááºáá° ">" ááŒá±á¬áá·áº ááá±ážááá¯á·ááá±ážáá±á¬ á á¬áá»á¬ážááá¯áᬠá¡á á®áááºáá¶áá«áááºá áááºááŒááºááá·áºá¡ááá¯ááºážá áááºážááẠAlice ááá¯á·áá±ážááá¯á·ááŒá®ážááŒá áºáá±á¬ááŒá±á¬áá·áº "apple" áááºáá±á·ááºá»ááá¯ááŒááááºááá¯ááºáá±á¬ááŒá±á¬áá·áº Bob ááẠ"áááá¹áá±á¬áºáá±á¬ááº" ááŸáá·áº "á áá±á¬áºáááºáá®" ááá¯áááºáá¶áááŸááááºááŒá áºáááºá
á€áááºážááŒáá·áº Aliceá Bob ááŸáá·áº á¡ááœá²á·á០á¡ááŒá¬ážá á¬áááºážááœááºážáá°ááá¯ááºážááẠáá°áá®áá±á¬á á®ážááŒá±á¬ááºážá០ááá°áá®áá±á¬áááºáá±á·áá»áºáá»á¬ážááᯠáááºááá¯ááºáááºá áááºážááá¯á·ááẠááá¯ááºáá±á¬ááºááá±ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážá ááŸááºáááºážááᯠáááºááŸá¯ááá¯ááºááẠááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºááŒá®ážáá¬áž áááºáá±á·áá»áºáá»á¬ážá¡ááŒá Ạá¡ááŸááºá¡áá¬ážááŒá¯ááá¯ááºáááºá
ááŸááºáá¬ážáá¬ážáááá·áºá¡áá»ááºá¡áá»áá¯á·ááŸááá«áááºá
- á á¬áááºážááœááºážáá°ááẠáááºáá±á·áá»áºááᯠá¡áááá·áºáá áºáá¯á¡ááŒá ẠááŸááºáá°áááºááŸáá·áºáááŒáá¯ááºááẠXREADGROUPá€áááºáá±á·áá»áºááẠâááá¯ááºážáá¶á·â á¡ááŒá±á¡áá±ááá¯á· áá±á¬ááºááœá¬ážááŒá®áž ááá¯áá®ážááá·áºá á¬áááºážááœááºážáá°áᶠáá¬áááºáá±ážáá¬ážáááºá á¡ááŒá¬ážá¡ááœá²á·á á¬áááºážááœááºážáá°áá»á¬ážááẠá€á á¬ááᯠáááºááá¯ááºáááºááá¯ááºáá«á
- á á¬áááºážááœááºážáá°áá»á¬ážááẠááááá±á¬áºááŒáá»ááºááœáẠá¡ááá¯á¡áá»á±á¬áẠáááºáá®ážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠá¡áá°ážáááẠáááºáá®ážááẠáááá¯á¡ááºáá«á
- ááŸáá·áº XREADGROUP áááºááẠááá°áá®áá±á¬ á á¬ááœá²áá»á¬ážá áœá¬á០á á¬áá»á¬ážááᯠáá áºáá»áááºáááºážááœáẠáááºááá¯ááºáá±á¬áºáááºáž áááºážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠá á¬ááœá²áá áºáá¯á á®á¡ááœáẠáá¬áááºáá°á¡á¯ááºá á¯áá»á¬ážááᯠáŠážá áœá¬áááºáá®ážááẠááá¯á¡ááºáá«áááºá XGROUP
ááŸá¯á¶ážáááá·áºááŒá®ážáá±á¬áẠááŒááºáááºáá°áá±á¬ááºáá±áž
á
á¬áááºážááœááºážáá°ááẠáá»ááŸá¯á¶ážááŸá¯á០ááŒááºáááºááá°ááá¯ááºááŒá®áž âááá¯ááºážáá¶á·â á¡áá±á¡áá¬ážááŒáá·áº áááºážá áááºáá±á·áá»áºá
á¬áááºážááᯠááŒááºáááºáááºááŸá¯ááá¯ááºáá«áááºá ááá¯á·áá±á¬áº áááºááœá±á·ááá¹áá¬ááœáẠá
á¬áááºážááœááºážáá°áá»á¬ážááẠáá±á¬ááºáá¯á¶ážááœáẠáá»ááŸá¯á¶ážááá¯ááºáá«áááºá á
á¬áááºážááœááºážáá°ááẠáá»ááºááœááºááŸá¯á០ááŒááºáááºááá°á áááá«á á
á¬áááºážááœááºážáá°á ááááºáá¬ážáá±á¬ áááºáá±á·áá»áºáá»á¬áž áááºááá¯á·ááŒá
áºáááºáááºážá
Consumer Group ááẠáááºáá±á·áá»áºáá»á¬ážáááá¯ááºááŸááºááᯠááŒá±á¬ááºážáá²áááºááá¯á¡ááºááá·áºá¡áá«ááœáẠááá¯ááá¯á·áá±á¬ááá
á¹á
áá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áºá¡ááºá¹áá«áááºááᯠáá±ážáá«áááºá
ááááá¯á¶ážáá¯ááºáááŸá¬á command ááá¯áá±á«áºáá«á XPENDINGâááá¯ááºážáá¶á·â áá°áá±á¬ á¡áá±á¡áá¬ážááŒáá·áº á¡á¯ááºá á¯á¡ááœááºážááŸá á á¬á¡á¬ážáá¯á¶ážááᯠááŒááá±ážáááºá áááºážá á¡ááá¯ážááŸááºážáá¯á¶ážáá¯á¶á á¶ááœááºá command ááᯠargument ááŸá áºáá¯áᬠáá±á«áºááá¯áááº- thread name ááŸáá·áº group name-
> XPENDING mystream mygroup
1) (integer) 2
2) 1526569498055-0
3) 1526569506935-0
4) 1) 1) "Bob"
2) "2"
á¡ááœá²á·ááẠá¡ááœá²á·áá áºáá¯áá¯á¶ážááŸáá·áº á á¬áááºážááœááºážáá°ááá¯ááºážá¡ááœáẠááá¯ááºáá±á¬ááºááá±ážáá±á¬ áááºáá±á·áá»áºá¡áá±á¡ááœááºááᯠááŒááá²á·áááºá á¡á²áá Ạáá±á¬ááºážááá¯áá¬ážááá·áº áá áºáá¯áááºážáá±á¬ áááºáá±á·áá»áºááᯠá¡áááºááŒá¯áá¬ážáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááœáẠáá°ážáá°ážááŒá¬ážááŒá¬áž áááºáá±á·áá»áº ááŸá áºáá¯áᬠBob ááŸááááºá 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
ááᯠáá»áœááºá¯ááºááá¯á·ááœáẠáááºáá±á·áá»áºáá áºáá¯á á®á¡ááœáẠá¡áá±ážá áááºá¡áá»ááºáá»á¬áž ááŸááááº- IDá á á¬áááºážááœááºážáá°á¡áááºá á¡áá¯ááºááá¯ááºááá·áºá¡áá»ááẠáá®áá®á áá¹ááá·áºáá»á¬ážááŸáá·áº áá±á¬ááºáá¯á¶ážááœáẠáá±ážááá¯á·ááẠááŒáá¯ážá á¬ážááŸá¯á¡áá±á¡ááœááºá áá»áœááºá¯ááºááá¯á·ááœáẠBob áá¶á០áááºáá±á·áá»áºááŸá áºáá¯ááŸáááŒá®áž áááºážááá¯á·ááẠ74170458 áá®áá®á áá¹ááá·áºá áá¬áá® 20 ááá·áºááŒá¬á¡á±á¬áẠáááºáá¬ážáá¬ážáááºá
áááºáá±á·áá»áºá á¡ááŒá±á¬ááºážá¡áá¬ááᯠááá¯ážááá¯ážááŸááºážááŸááºážá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áááºáá°áá»áŸ áá»áœááºá¯ááºááá¯á·á¡á¬áž á á áºáá±ážááŒááºážáááŒá¯ááẠáá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á XRANGE.
> XRANGE mystream 1526569498055-0 1526569498055-0
1) 1) 1526569498055-0
2) 1) "message"
2) "orange"
á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážááœáẠáá°áá®áá±á¬ identifier ááᯠááŸá áºááŒáááºáááºáá¯ááºáááºáá¬ááŸááááºá ááᯠáá»áœááºá¯ááºááá¯á·ááœáẠá¡ááŒá¶á¥á¬ááºáá áºáá¯ááá¬ážááŒá®ážá áá¬áá® 20 áááºáá¬ážááŒá®ážáá±á¬áẠBob ááẠááŒááºáááºáá±á¬ááºážááœááºáá¬áááºááá¯ááºááŒá±á¬ááºáž Alice á០áá¯á¶ážááŒááºááá¯ááºááŒá®ážá ááá¯áááºáá±á·áá»áºáá»á¬ážááᯠáá±ážááŒááºážááŒá®áž Bob á¡ááœáẠááŒááºáááºáá¯ááºáá±á¬ááºáááá·áºá¡áá»áááºáá±á¬ááºááŒá®ááŒá áºáááºá á€á¡ááœááºáá»áœááºá¯ááºááá¯á·ááẠcommand ááá¯á¡áá¯á¶ážááŒá¯áááºá 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"
áááºáá±á·áá»áºááᯠAlice á០á¡á±á¬ááºááŒááºá áœá¬ á¡áá±ážááá¯ááá¯ááºáá²á·ááŒá®áž ááá¯á¡áá« áááºáá±á·áá»áºááᯠáá¯ááºáá±á¬ááºááá¯ááºááŒá®áž áááºážááᯠá¡ááá¡ááŸááºááŒá¯ááá¯ááºááŒá®ááŒá áºáááºá
á¡áááºáá±á¬áºááŒáá« á¥ááá¬ááŸá á¡á±á¬ááºááŒááºáá±á¬ áá±á¬ááºážááá¯áá»ááºáá áºáá¯ááẠáááºáá±á·ááºá»á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá°á·áá¬áá¬áá° ááŒááºááá¯á·áá±ážááŒá±á¬ááºáž áááºááœá±á·ááŒááºááá¯ááºáá«áááºá ááá¯á·áá±á¬áº á€á¡áá¬ááẠáááá¯á¡ááºáá«á JUSTID ááœá±ážáá»ááºááŸá¯ááᯠáááºáá±á·áá»áº ID áá»á¬ážááá¯áᬠááŒááºááá¯á·áááºá¡ááœááºáᬠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá áááºáá±á·ááºá»áá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá áááºááááºá á¬ážáá² á áá áºá áœááºážáá±á¬ááºáááºááᯠááá¯ážááŒáŸáá·áºááá¯áá«á áááºážááẠá¡áá¯á¶ážáááºáááºá
Delivery áá±á¬ááºáá¬
output ááŸá¬ááŒááºááá²á·áá±á¬ááºáᬠXPENDING áááºáá±á·áá»áºáá áºáá¯á á®á áá±ážááá¯á·ááŸá¯á¡áá±á¡ááœááºááŒá áºáááºá áááºáá±á·áá»áºááᯠá¡á±á¬ááºááŒááºá áœá¬ áá±á¬ááºážááá¯áá±á¬á¡áá«ááœáẠááá¯ááá¯á·áá±á¬áá±á¬ááºáá¬ááᯠáááºážáááºážááŸá áºáá»áá¯ážááŒáá·áº ááá¯ážáá¬ážáááºá XCLAIM ááá¯á·ááá¯áẠáá±á«áºááá¯ááá·áºá¡áá« á¡áá¯á¶ážááŒá¯áááºá XREADGROUP.
á¡áá»áá¯á·áá±á¬ áááºáá±á·áá»áºáá»á¬ážááᯠá¡ááŒáááºáá»á¬ážá áœá¬ áá±ážááá¯á·ááŒááºážááẠáá¯á¶ááŸááºááŒá áºáááºá á¡áááá¡áá»ááºááŸá¬ áááºáá±á·áá»áºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá±á¬ááºáá¯á¶ážááœáẠáá¯ááºáá±á¬ááºááŒá®ážááŒá áºáááºá áááºáá±á·áá»áºááá¯ááºááá¯áẠáá»ááºá á®ážáá±áá±á¬ááŒá±á¬áá·áº áááºáá±á·áá»áºááᯠáá¯ááºáá±á¬ááºáá¬ááœáẠáá áºáá«áá áºáᶠááŒá¿áá¬áá»á¬áž ááŒá áºáá±á«áºáááºáááºá ááá¯á·ááá¯áẠáááºáá±á·áá»áºáá¯ááºáá±á¬ááºááŒááºážááẠááá¯ááºááœááºáá°áá¯ááºááœáẠá¡ááŸá¬ážá¡ááœááºážááŒá áºá á±áááºá á€ááá á¹á ááœááºá á€á á¬ááᯠáááºáá°áá»áŸ áá¯ááºáá±á¬ááºááá¯ááºááẠááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááœáẠáá±ážááá¯á·áááºááŒáá¯ážáááºážááŸá¯áá±á¬ááºáá¬ááŸááá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá€áá±á¬ááºáá¬ááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááᯠááááŸáááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá áá±ážááá¯á·ááŸá¯á¡áá±á¡ááœááºááẠáááºáááºááŸááºáá¬ážáá±á¬ áá¶áá«ááºááŒáá·áºááá¯á· áá±á¬ááºáááºááŸáá·áºáááŒáá¯ááºáááºá ááá¯áá²á·ááá¯á·áá±á¬ áááºáá±á·áá»áºááᯠá¡ááŒá¬ážá á¬ááœá²áá±á«áºááœáẠáááºááŒá®áž á áá áºá á®áá¶ááá·áºááœá²áá°áᶠá¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá áºáᯠáá±ážááá¯á·ááŒááºážááẠááá¯ááá¯ááá¬ááŸááá±áááºá
áá»ááºááŒááºáááº
á¡ááœá²á· XINFO thread áá áºáá¯ááŸáá·áº áááºážá á¡á¯ááºá á¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»áá¯ážáá»áá¯ážáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠáá±á¬ááºážááá¯ááẠá¡áá¯á¶ážááŒá¯áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡ááŒá±áᶠcommand ááẠá€áá²á·ááá¯á· ááŒá áºáááº-
> 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"
á¡áááºáá±á¬áºááŒáá« command ááẠáááºááŸááºáá¬ážáá±á¬ stream ááŸáá·áºáááºáááºáá±á¬ á¡ááœá±ááœá±á¡áá»ááºá¡áááºáá»á¬ážááᯠááŒááá±ážáá«áááºá ááᯠá¡áááºážááẠááá¯ááŸá¯ááºááœá±ážáá±á¬ á¥ááá¬áá áºáá¯á
> 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
á¡áááºáá±á¬áºááŒáá« command ááẠáááºááŸááºáá¬ážáá±á¬ thread á á¡á¯ááºá á¯á¡á¬ážáá¯á¶ážá¡ááœáẠáá±áá°áá»á¡áá»ááºá¡áááºááᯠááŒááááºá
> 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
á¡áááºáá±á¬áºááŒáá« command ááẠáááºááŸááºáá¬ážáá±á¬ stream ááŸáá·áº group á á
á¬áááºážááœááºážáá°á¡á¬ážáá¯á¶ážá¡ááœáẠá¡áá»ááºá¡áááºááᯠááŒááá±ážáá«áááºá
command syntax ááᯠáá±á·ááœá¬ážáá«áá command ááá¯ááºááá¯ááºá á¡áá°á¡áá®áá±á¬ááºážáá«-
> 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.
ááá¯ááºááá¯ááºáá¯ááºááœáŸáá·áºááŸá¯ á¡ááœááºá¡á á¬áž ááá·áºáááºáá»ááº
á¡ááá®áá±ážááŸááºážáá»á¬ážá áœá¬ááẠáá¯ááºááœáŸáá·áºááŸá¯áá áºáá¯ááá¯á· áá¬áááá±áá¬áá á¯áá±á¬ááºážááá¯áá«á á á¬ááœá²áá áºáá¯áá»áŸáẠá¡áá»á¬ážáá¯á¶ážááœáá·áºááŒá¯áá¬ážáá±á¬ áááºáá±á·áá»áºá¡áá±á¡ááœááºááŸáááẠáááŒá¬áá á¡áá¯á¶ážáááºáááºá á¡ááŒá¬ážááá á¹á áá»á¬ážááœááºá áááºááŸááºáá¬ážáá±á¬ thread á¡ááœááºá¡á á¬ážááá¯á·áá±á¬ááºááŸááá±á¬á¡áá« á á¬ááá¯á¡á¬ážáá¯á¶ážááᯠthread áá áºáá¯á០á¡ááŒá¬áž persistent store ááá¯á· ááœáŸá±á·ááẠá¡áá¯á¶ážáááºáááºá command ááœáẠ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 á¡ááœááºážááŸá Memory Management ááá¯ááá¯ááá¯áááá±á¬ááºá
á±áááºá
áá®ážááŒá¬ážá¡ááœá²á·áááºážááŸááááºá XTRIMáá°áá®áá±á¬á¡áá¬ááá¯áá¯ááºáá±á¬ááºáááº:
> XTRIM mystream MAXLEN 10
> XTRIM mystream MAXLEN ~ 10
ááááºážáááºážááŒááºážááŸáá·áº áááºáá°ááŒá¯ááŒááºáž
Redis Stream ááẠslave node áá»á¬ážáá®ááá¯á· á¡ááŒáá¯ááºá¡ááá¯áẠáá°ážáá°áá¬ážááŒá®áž AOF (áá±áá¬á¡á¬ážáá¯á¶ážá áá»áŸááºáá áºááŒááº) ááŸáá·áº RDB (áá±ážáá¬ážááŸá¯á¡á¬ážáá¯á¶ážá ááŸááºáááºáž) áá²á·ááá¯á·áá±á¬ ááá¯ááºáá»á¬ážááœáẠááááºážáááºážáá¬ážáááºá Consumer Groups state á áá¯á¶áá°áá°ážááŒááºážááá¯áááºáž áá¶á·ááá¯ážáá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº áááºáá±á·áá»áºáá áºáá¯ááẠmaster node ááœáẠ"ááá¯ááºážáá¶á·" á¡ááá·áºááœááºááŸááá±áá«áá slave node áá»á¬ážááœáẠá€áááºáá±á·áá»áºááẠáá°áá®áá±á¬á¡ááŒá±á¡áá±ááŸááááºááŒá áºáááºá
áá¯ááºááœáŸáá·áºááŸá¯áá áºáá¯á០á¡á áááºá¡ááá¯ááºážáá áºáá¯áá»ááºážá á®ááᯠáááºááŸá¬ážááŒááºážá
áááºáá±á·áá»áºáá»á¬ážááá¯áá»ááºááẠá¡áá°ážá¡áááá·áºááŸááá«áááºá XDEL. áá»ááºáá áºáááá·áº áááºáá±á·áá»áº ID áá»á¬ážáá±á¬ááºááœáẠááœá²áá¡áááºááᯠáááŸááááº-
> 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"
á€á¡áááá·áºááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á á¡ááŸááºáááẠmemory ááá¯áá»ááºáá»ááºážáá¯ááºáááºááá¯ááºááŒá±á¬ááºážááá·áºááœááºážá ááºážá á¬ážáááºááá¯á¡ááºáááºá
áá¯áá¡ááŸááºáá»á±á¬ááºážáá»á¬áž
ááá¯ááºááá¯ááºáá¯ááºááœáŸáá·áºááŸá¯áá»á¬ážááŸáá·áº á¡ááŒá¬ážáá±á¬ Redis áá±áá¬áááºáá±á¬ááºáá¯á¶áá»á¬ážááŒá¬áž ááœá¬ááŒá¬ážáá»ááºááŸá¬ á¡ááŒá¬ážáá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááœáẠáááºážááá¯á·á¡ááœááºáž ááŒááºá ááºáá»á¬ážáááŸááá±á¬á·ááá·áºá¡áá« áá±ážááœááºááá¯ážáá»áá¯ážá¡áá±ááŒáá·áº áá±áá¬ááœá²á·á ááºážáá¯á¶ááẠááŸááºáá¬ááºáá²á០áááºááŸá¬ážáá¶ááááºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá á¥ááá¬á¡á¬ážááŒáá·áºá ZREM áá±á«áºááá¯ááŸá¯á០áá±á¬ááºáá¯á¶ážá¡áá¬á¡á¬áž áááºááŸá¬ážááá·áºá¡áá« á á®áá¬ážáá±á¬á¡á á¯á¶ááᯠá¡ááŒá®ážá¡ááá¯ááºáááºááŸá¬ážáá«áááºá áááºážá¡á á¬ážá threads áá»á¬ážááẠá¡ááœááºážá áááºááá·áºááŒááºá ááºá០ááá«áááºáá² ááŸááºáá¬ááºáá²ááœáẠááŸááá±ááẠááœáá·áºááŒá¯áá¬ážáááºá
áá±á¬ááºáá»ááº
Redis Stream ááẠáááºáá±á·áá»áºááœá²á á¬ážáá»á¬ážá áááºáá±á·áá»áºáá»á¬áž áááºážá á®ááŒááºážá áá±á«ááºážá ááºážáá¬ážáá±á¬ ááŸááºáááºážááá°ááŒááºážááŸáá·áº ááŸááºáááºážááááºážááááºážááŒááºáž áá»ááºá áá áºáá»á¬ážááᯠáááºáá®ážááŒááºážá¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá áºáááºá
áá
áºáá»áááºá ááŒá±á¬áá²á·áááá¯áá«áá²á
source: www.habr.com