Redis Stream ã¯ãRedis ããŒãžã§ã³ 5.0 ã§å°å
¥ãããæ°ããæœè±¡ããŒã¿åã§ãã
æŠå¿µçã«ã¯ãRedis Stream ã¯ãšã³ããªãè¿œå ã§ãããªã¹ãã§ãã åãšã³ããªã«ã¯äžæã®èå¥åããããŸãã ããã©ã«ãã§ã¯ãID ã¯èªåçã«çæãããã¿ã€ã ã¹ã¿ã³ããå«ãŸããŸãã ãããã£ãŠãUnix ã®ãtail -fãã³ãã³ãããã° ãã¡ã€ã«ãèªã¿åããæ°ããããŒã¿ãåŸ
æ©ããŠããéã«ããªãŒãºããã®ãšåãããã«ãæéã®çµéãšãšãã«ã¬ã³ãŒãã®ç¯å²ãã¯ãšãªããããã¹ããªãŒã ã«å°çããæ°ããããŒã¿ãåä¿¡ãããã§ããŸãã å€æ°ã®ãtail -fãããã»ã¹ãäºãã«ç«¶åããããšãªãåæã«ãã¡ã€ã«ãèªã¿åãããšãã§ããã®ãšåæ§ã«ãè€æ°ã®ã¯ã©ã€ã¢ã³ããåæã« XNUMX ã€ã®ã¹ã¬ããããªãã¹ã³ã§ããããšã«æ³šæããŠãã ããã
æ°ããããŒã¿åã®å©ç¹ããã¹ãŠç解ããããã«ãRedis Stream ã®æ©èœãéšåçã«è€è£œãããå€ãããååšãã Redis æ§é ãç°¡åã«èŠãŠã¿ãŸãããã
Redis PUB/SUB
Redis Pub/Sub ã¯ãKey-Value ã¹ãã¢ã«ãã§ã«çµã¿èŸŒãŸããŠããã·ã³ãã«ãªã¡ãã»ãŒãžã³ã° ã·ã¹ãã ã§ãã ãã ããã·ã³ãã«ãã«ã¯ä»£åã䌎ããŸãã
- çºè¡è ãäœããã®çç±ã§å€±æãããšããã¹ãŠã®è³Œèªè ã倱ããŸãã
- çºè¡è ã¯ããã¹ãŠã®è³Œèªè ã®æ£ç¢ºãªäœæãç¥ãå¿ èŠããããŸãã
- ããŒã¿ãåŠçããããããæ©ããããªãã·ã¥ããããšããããªãã·ã£ãŒã¯ãµãã¹ã¯ã©ã€ããŒã«ä»äºã§éè² è·ããããå¯èœæ§ããããŸãã
- ã¡ãã»ãŒãžã¯ãé ä¿¡ããããµãã¹ã¯ã©ã€ããŒã®æ°ãããã®ã¡ãã»ãŒãžãã©ãã ãæ©ãåŠçã§ãããã«é¢ä¿ãªããçºè¡çŽåŸã«ãããªãã·ã£ãŒã®ãããã¡ãŒããåé€ãããŸãã
- ãã¹ãŠã®è³Œèªè ãåæã«ã¡ãã»ãŒãžãåä¿¡ããŸãã å å ¥è èªèº«ã¯ãåãã¡ãã»ãŒãžãåŠçããé åºã«ã€ããŠäœããã®æ¹æ³ã§å å ¥è éã§åæããå¿ èŠããããŸãã
- ãµãã¹ã¯ã©ã€ããã¡ãã»ãŒãžãæ£åžžã«åŠçããããšã確èªããçµã¿èŸŒã¿ã¡ã«ããºã ã¯ãããŸããã ãµãã¹ã¯ã©ã€ããŒãã¡ãã»ãŒãžãåä¿¡ããåŠçäžã«ã¯ã©ãã·ã¥ããŠãããããªãã·ã£ãŒã¯ãããç¥ããŸããã
Redis ãªã¹ã
Redis List ã¯ãèªã¿åãã³ãã³ãã®ãããã¯ããµããŒãããããŒã¿æ§é ã§ãã ãªã¹ãã®å é ãŸãã¯æ«å°Ÿããã¡ãã»ãŒãžãè¿œå ããããèªãã ãã§ããŸãã ãã®æ§é ã«åºã¥ããŠãåæ£ã·ã¹ãã çšã«é©åãªã¹ã¿ãã¯ãŸãã¯ãã¥ãŒãäœæã§ããŸããã»ãšãã©ã®å Žåãããã§ååã§ãã Redis Pub/Sub ãšã®äž»ãªéã:
- ã¡ãã»ãŒãžã¯ XNUMX 人ã®ã¯ã©ã€ã¢ã³ãã«é ä¿¡ãããŸãã æåã«èªã¿åããããã¯ãããã¯ã©ã€ã¢ã³ããæåã«ããŒã¿ãåä¿¡ããŸãã
- ã¯ãªã³ãã¯åã¡ãã»ãŒãžã®èªã¿åãæäœãèªåã§éå§ããå¿ èŠããããŸãã ãªã¹ãã¯ã¯ã©ã€ã¢ã³ãã«ã€ããŠäœãç¥ããŸããã
- ã¡ãã»ãŒãžã¯ã誰ããèªããæ瀺çã«åé€ãããŸã§ä¿åãããŸãã ããŒã¿ããã£ã¹ã¯ã«ãã©ãã·ã¥ããããã« Redis ãµãŒããŒãæ§æãããšãã·ã¹ãã ã®ä¿¡é Œæ§ãå€§å¹ ã«åäžããŸãã
ã¹ããªãŒã ã®æŠèŠ
ã¹ããªãŒã ãžã®ãšã³ããªã®è¿œå
ããŒã XADD æ°ãããšã³ããªãã¹ããªãŒã ã«è¿œå ããŸãã ã¬ã³ãŒãã¯åãªãæååã§ã¯ãªããXNUMX ã€ä»¥äžã®ããŒãšå€ã®ãã¢ã§æ§æãããŸãã ãããã£ãŠãåãšã³ããªã¯ãã§ã«æ§é åãããŠãããCSV ãã¡ã€ã«ã®æ§é ã«äŒŒãŠããŸãã
> XADD mystream * sensor-id 1234 temperature 19.8
1518951480106-0
äžã®äŸã§ã¯ãååïŒããŒïŒãmystreamããæã€ã¹ããªãŒã ã« 1234 ã€ã®ãã£ãŒã«ããè¿œå ããŸãããã»ã³ãµãŒ IDããšã枩床ãã®å€ã¯ãããããã19.8ããšãXNUMXãã§ãã ãã®ã³ãã³ã㯠XNUMX çªç®ã®åŒæ°ãšããŠããšã³ããªã«å²ãåœãŠãããèå¥åãåãåããŸãããã®èå¥åã¯ãã¹ããªãŒã å ã®åãšã³ããªãäžæã«èå¥ããŸãã ãã ãããã®å Žåã¯ãRedis ã«æ°ãã ID ãçæããŠãããããããã* ãæž¡ããŸããã æ°ããIDãå¢ãããã³ã«å¢ããŠãããŸãã ãããã£ãŠãæ°ãããšã³ããªã¯ããããã以åã®ãšã³ããªãšæ¯èŒããŠããé«ãèå¥åãæã¡ãŸãã
èå¥åã®åœ¢åŒ
ã³ãã³ãã«ãã£ãŠè¿ããããšã³ã㪠ID XADD㯠XNUMX ã€ã®éšåã§æ§æãããŸãã
{millisecondsTime}-{sequenceNumber}
ããªç§æé â ããªç§åäœã® Unix æé (Redis ãµãŒããŒæé)ã ãã ããçŸåšã®æå»ãåã®èšé²ã®æå»ãšåããããããå°ããå Žåã¯ãåã®èšé²ã®ã¿ã€ã ã¹ã¿ã³ãã䜿çšãããŸãã ãããã£ãŠããµãŒããŒæéãéå»ã«æ»ã£ãå Žåã§ããæ°ããèå¥åã¯å¢åããããã£ãä¿æãããŸãŸã«ãªããŸãã
ã·ãŒã±ã³ã¹çªå· åãããªç§å ã«äœæãããã¬ã³ãŒãã«äœ¿çšãããŸãã ã·ãŒã±ã³ã¹çªå· åã®ãšã³ããªã«æ¯ã¹ãŠ 1 å¢å ããŸãã ãªããªã ã·ãŒã±ã³ã¹çªå· ãµã€ãºã 64 ãããã§ããå Žåãå®éã«ã¯ãXNUMX ããªç§ä»¥å ã«çæã§ããã¬ã³ãŒãæ°ã®å¶éã«ééããå¿ èŠã¯ãããŸããã
ãã®ãããªèå¥åã®åœ¢åŒã¯ãäžèŠãããšå¥åŠã«èŠãããããããŸããã äžä¿¡æãæ±ããŠããèªè ã¯ããªãæéãèå¥åã®äžéšãªã®ãçåã«æããããããŸããã ãã®çç±ã¯ãRedis ã¹ããªãŒã ã ID ã«ããç¯å²ã¯ãšãªããµããŒãããŠããããã§ãã èå¥åã¯ã¬ã³ãŒãã®äœææå»ã«é¢é£ä»ããããŠãããããæéç¯å²ãã¯ãšãªããããšãå¯èœã«ãªããŸãã ã³ãã³ããèŠãŠå ·äœçãªäŸãèŠãŠã¿ãŸãããã ãšã¯ã¹ã¬ã³ãž.
äœããã®çç±ã§ãŠãŒã¶ãŒãèªåã®èå¥åãæå®ããå¿ èŠãããå ŽåïŒããšãã°ãå€éšã·ã¹ãã ã«é¢é£ä»ããããŠããå ŽåïŒããããã³ãã³ãã«æž¡ãããšãã§ããŸãã XADD 以äžã«ç€ºãããã« * ã®ä»£ããã«:
> XADD somestream 0-1 field value
0-1
> XADD somestream 0-2 foo bar
0-2
ãã®å ŽåãID ã®å¢å ãèªåã§ç£èŠããå¿ èŠãããããšã«æ³šæããŠãã ããã ãã®äŸã§ã¯ãæå°ã®èå¥åã¯ã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
ç¯å²å¥ã«ããŒã¿ããªã¯ãšã¹ãããã«ã¯ãç¯å²ã®å é ãšæ«å°Ÿã® XNUMX ã€ã®èå¥åãæå®ããå¿ èŠããããŸãã è¿ãããç¯å²ã«ã¯ãå¢çãå«ããã¹ãŠã®èŠçŽ ãå«ãŸããŸãã ãŸããXNUMX ã€ã®ç¹å¥ãªèå¥åã-ããšã+ãããããããããã¹ããªãŒã å ã®æå° (æåã®ã¬ã³ãŒã) ãšæ倧 (æåŸã®ã¬ã³ãŒã) ã®èå¥åãæå³ããŸãã 以äžã®äŸã§ã¯ããã¹ãŠã®ã¹ããªãŒã ãšã³ããªããªã¹ãããŸãã
> 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"
è¿ãããåã¬ã³ãŒãã¯ãèå¥åãšããŒãšå€ã®ãã¢ã®ãªã¹ããšãã XNUMX ã€ã®èŠçŽ ã®é åã§ãã ã¬ã³ãŒãèå¥åã¯æéã«é¢é£ããŠãããšãã§ã«è¿°ã¹ãŸããã ãããã£ãŠãç¹å®ã®æéã®ç¯å²ããªã¯ãšã¹ãã§ããŸãã ãã ãããªã¯ãšã¹ãã§ã¯å®å šãªèå¥åã§ã¯ãªããUnix æéã®ã¿ãæå®ã§ããããã«é¢é£ããéšåã¯çç¥ãããŸãã ã·ãŒã±ã³ã¹çªå·ã èå¥åã®çç¥ãããéšåã¯ãç¯å²ã®å é ã§ã¯èªåçã«ãŒãã«èšå®ãããç¯å²ã®æ«å°Ÿã§ã¯å¯èœãªæ倧å€ã«èšå®ãããŸãã 以äžã¯ãXNUMX ããªç§ã®ç¯å²ããªã¯ãšã¹ãããæ¹æ³ã®äŸã§ãã
> XRANGE mystream 1518951480106 1518951480107
1) 1) 1518951480106-0
2) 1) "sensor-id"
2) "1234"
3) "temperature"
4) "19.8"
ãã®ç¯å²ã«ã¯ãšã³ããªã XNUMX ã€ã ããããŸãããå®éã®ããŒã¿ ã»ããã§ã¯è¿ãããçµæãèšå€§ã«ãªãå¯èœæ§ããããŸãã ãã®ãã ãšã¯ã¹ã¬ã³ãž COUNT ãªãã·ã§ã³ããµããŒãããŸãã æ°éãæå®ãããšãæåã® N åã®ã¬ã³ãŒããç°¡åã«ååŸã§ããŸãã 次㮠N ã¬ã³ãŒã (ããŒãžããŒã·ã§ã³) ãååŸããå¿ èŠãããå Žåã¯ãæåŸã«åä¿¡ãã ID ã䜿çšããŠãID ãå¢ããããšãã§ããŸãã ã·ãŒã±ã³ã¹çªå· äžã€ãã€èšã£ãŠãããäžåºŠè³ªåããŠãã ããã 次ã®äŸã§ãããèŠãŠã¿ãŸãããã 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 ã€ã®èŠçŽ ã®å埩ãç¶ããã«ã¯ãæåŸã«åä¿¡ãã ID (ã€ãŸã 0-1) ãéžæããããã« XNUMX ãå ç®ããå¿
èŠããããŸãã ã·ãŒã±ã³ã¹çªå·.
çµæã® ID (ãã®å Žå㯠1519073279157-1) ã¯ã次ã®åŒã³åºãã®æ°ããç¯å²éå§åŒæ°ãšããŠäœ¿çšã§ããããã«ãªããŸããã ãšã¯ã¹ã¬ã³ãž:
> 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"
çã ã è€éãªãã ãšã¯ã¹ã¬ã³ãž æ€çŽ¢ã« O(log(N)) ã䜿çšãã次㫠M èŠçŽ ãè¿ãããã« O(M) ã䜿çšãããšãåå埩ã¹ããããé«éã«ãªããŸãã ãããã£ãŠã䜿çšãããšã ãšã¯ã¹ã¬ã³ãž ã¹ããªãŒã ãå¹ççã«å埩ã§ããŸãã
ããŒã XREVRANGE åçã§ã ãšã¯ã¹ã¬ã³ãžã§ãããèŠçŽ ã¯éã®é åºã§è¿ãããŸãã
> XREVRANGE mystream + - COUNT 1
1) 1) 1519073287312-0
2) 1) "foo"
2) "value_10"
ã³ãã³ãã«æ³šæããŠãã ãã XREVRANGE ç¯å²åŒæ°ã® start ãš stop ãéã®é åºã§åãåããŸãã
XREADã䜿çšããæ°ãããšã³ããªã®èªã¿åã
å€ãã®å Žåãã¹ããªãŒã ããµãã¹ã¯ã©ã€ãããŠæ°ããã¡ãã»ãŒãžã®ã¿ãåä¿¡ãããšããã¿ã¹ã¯ãçºçããŸãã ãã®æŠå¿µã¯ Redis Pub/Sub ãŸã㯠Redis List ã®ãããã¯ã«äŒŒãŠããããã«èŠãããããããŸããããRedis Stream ã®äœ¿çšæ¹æ³ã«ã¯æ ¹æ¬çãªéãããããŸãã
- ããã©ã«ãã§ã¯ãæ°ããã¡ãã»ãŒãžã¯ãã¹ãŠãã¹ãŠã®è³Œèªè ã«é ä¿¡ãããŸãã ãã®åäœã¯ãæ°ããã¡ãã»ãŒãžã XNUMX 人ã®ãµãã¹ã¯ã©ã€ããŒã®ã¿ãèªã¿åãããããã³ã° Redis ãªã¹ããšã¯ç°ãªããŸãã
- Redis Pub/Sub ã§ã¯ããã¹ãŠã®ã¡ãã»ãŒãžã¯å¿ããããæ°žç¶åãããŸããããStream ã§ã¯ããã¹ãŠã®ã¡ãã»ãŒãžã¯ (ã¯ã©ã€ã¢ã³ããæ瀺çã«åé€ããªãéã) ç¡æéã«ä¿æãããŸãã
- Redis Stream ã䜿çšãããšãXNUMX ã€ã®ã¹ããªãŒã å ã®ã¡ãã»ãŒãžãžã®ã¢ã¯ã»ã¹ãåºå¥ã§ããŸãã ç¹å®ã®è³Œèªè ã¯ãèªåã®å人ã¡ãã»ãŒãžå±¥æŽã®ã¿ã衚瀺ã§ããŸãã
ã³ãã³ãã䜿çšããŠã¹ã¬ããã賌èªããæ°ããã¡ãã»ãŒãžãåä¿¡ã§ããŸãã XREADã ãããå°ãè€éã§ã ãšã¯ã¹ã¬ã³ãž, ãã®ãããæåã¯ç°¡åãªäŸããå§ããŸãã
> 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ããšæžããŸãããã0-0ããã倧ããèå¥åãæ〠mystream ã¹ããªãŒã ã®ãã¹ãŠã®ã¬ã³ãŒããåä¿¡ããããšèããŠããŸãã ãã®äŸãããããããã«ãåæã«è€æ°ã®ã¹ã¬ããããµãã¹ã¯ã©ã€ãã§ããããããã®ã³ãã³ãã¯ã¹ã¬ããã®ååãè¿ããŸãã ããšãã°ããSTREAMS mystream otherstream 0 0ããšæžãããšãã§ããŸãã STREAMS ãªãã·ã§ã³ã®åŸã«ã¯ããŸãå¿ èŠãªãã¹ãŠã®ã¹ããªãŒã ã®ååãæå®ãããã®åŸã§èå¥åã®ãªã¹ããæå®ããå¿ èŠãããããšã«æ³šæããŠãã ããã
ãã®åçŽãªåœ¢åŒã§ã¯ãã³ãã³ãã¯æ¬¡ã®ã³ãã³ããšæ¯ã¹ãŠç¹å¥ãªããšã¯äœãè¡ããŸããã ãšã¯ã¹ã¬ã³ãžã ããããèå³æ·±ãã®ã¯ãç°¡åã«åããå€ããããšãã§ãããšããããšã§ãã XREAD BLOCK åŒæ°ãæå®ããŠããããã³ã° ã³ãã³ãã«è¿œå ããŸãã
> XREAD BLOCK 0 STREAMS mystream $
äžã®äŸã§ã¯ãæ°ãã BLOCK ãªãã·ã§ã³ãã¿ã€ã ã¢ãŠã 0 ããªç§ã§æå®ãããŠããŸã (ããã¯ãç¡æéã«åŸ
æ©ããããšãæå³ããŸã)ã ããã«ãã¹ããªãŒã mystream ã®éåžžã®èå¥åãæž¡ã代ããã«ãç¹å¥ãªèå¥å $ ãæž¡ãããŸããã ãã®ç¹å¥ãªèå¥åã¯æ¬¡ã®ããšãæå³ããŸã XREAD mystream å
ã®æ倧ã®èå¥åãèå¥åãšããŠäœ¿çšããå¿
èŠããããŸãã ãããã£ãŠãèãå§ããç¬éããæ°ããã¡ãã»ãŒãžã®ã¿ãåä¿¡ããããšã«ãªããŸãã ããæå³ããã㯠Unix ã®ãtail -fãã³ãã³ãã«äŒŒãŠããŸãã
BLOCK ãªãã·ã§ã³ã䜿çšããå Žåãå¿ ãããç¹å¥ãªèå¥å $ ã䜿çšããå¿ èŠã¯ãªãããšã«æ³šæããŠãã ããã ã¹ããªãŒã å ã«ååšããä»»æã®èå¥åã䜿çšã§ããŸãã ããŒã ããããã¯ããã«ãªã¯ãšã¹ããããã«åŠçã§ããå Žåã¯åŠçããããã§ãªãå Žåã¯ãããã¯ããŸãã
ããããã³ã° XREAD ååãæå®ããã ãã§ãè€æ°ã®ã¹ã¬ãããåæã«ãªãã¹ã³ããããšãã§ããŸãã ãã®å Žåãã³ãã³ãã¯ããŒã¿ãåä¿¡ããæåã®ã¹ããªãŒã ã®ã¬ã³ãŒããè¿ããŸãã ç¹å®ã®ã¹ã¬ããã«å¯ŸããŠãããã¯ãããæåã®ãµãã¹ã¯ã©ã€ããæåã«ããŒã¿ãåä¿¡ããŸãã
æ¶è²»è å£äœ
ç¹å®ã®ã¿ã¹ã¯ã§ã¯ãXNUMX ã€ã®ã¹ã¬ããå ã®ã¡ãã»ãŒãžãžã®ãµãã¹ã¯ã©ã€ããŒã®ã¢ã¯ã»ã¹ãå¶éããããšèããŠããŸãã ããã圹ç«ã€äŸãšããŠã¯ãã¹ã¬ããããããŸããŸãªã¡ãã»ãŒãžãåä¿¡ããã¯ãŒã«ãŒãåããã¡ãã»ãŒãž ãã¥ãŒãæããããã¡ãã»ãŒãžåŠçã®æ¡åŒµãå¯èœã«ãªããŸãã
1 人ã®ãµãã¹ã¯ã©ã€ã㌠C2ãC3ãC1 ãšãã¡ãã»ãŒãž 2ã3ã4ã5ã6ã7ãXNUMX ãå«ãã¹ã¬ããããããšæ³åãããšãã¡ãã»ãŒãžã¯æ¬¡ã®å³ã®ããã«åŠçãããŸãã
1 -> C1
2 -> C2
3 -> C3
4 -> C1
5 -> C2
6 -> C3
7 -> C1
ãã®å¹æãå®çŸããããã«ãRedis Stream 㯠Consumer Group ãšåŒã°ããæŠå¿µã䜿çšããŸãã ãã®æŠå¿µã¯ãã¹ããªãŒã ããããŒã¿ãåä¿¡ããç䌌ãµãã¹ã¯ã©ã€ããŒã«äŒŒãŠããŸãããå®éã«ã¯ã°ã«ãŒãå
ã®è€æ°ã®ãµãã¹ã¯ã©ã€ããŒã«ãã£ãŠãµãŒãã¹ãæäŸãããç¹å®ã®ä¿èšŒãæäŸãããŸãã
- åã¡ãã»ãŒãžã¯ã°ã«ãŒãå ã®ç°ãªãå å ¥è ã«é ä¿¡ãããŸãã
- ã°ã«ãŒãå ã§ã¯ããµãã¹ã¯ã©ã€ãã¯ååïŒå€§æåãšå°æåãåºå¥ãããæååïŒã«ãã£ãŠèå¥ãããŸãã å å ¥è ãäžæçã«ã°ã«ãŒãããè±èœããå Žåãå å ¥è ã¯ç¬èªã®åºæã®ååã䜿çšããŠã°ã«ãŒãã«åŸ©å ã§ããŸãã
- ãã¹ãŠã®æ¶è²»è ã°ã«ãŒãã¯ããæåã®æªèªã¡ãã»ãŒãžãã®æŠå¿µã«åŸã£ãŠããŸãã ãµãã¹ã¯ã©ã€ããæ°ããã¡ãã»ãŒãžãèŠæ±ãããšãã°ã«ãŒãå ã®ã©ã®ãµãã¹ã¯ã©ã€ãã«ã以åã«é ä¿¡ãããããšã®ãªãã¡ãã»ãŒãžã®ã¿ãåä¿¡ã§ããŸãã
- ã¡ãã»ãŒãžããµãã¹ã¯ã©ã€ããŒã«ãã£ãŠæ£åžžã«åŠçãããããšãæ瀺çã«ç¢ºèªããã³ãã³ãããããŸãã ãã®ã³ãã³ããåŒã³åºããããŸã§ãèŠæ±ãããã¡ãã»ãŒãžã¯ãä¿çäžãã¹ããŒã¿ã¹ã®ãŸãŸã«ãªããŸãã
- Consumer Group å ã§ã¯ãåå å ¥è ã¯èªåã«é ä¿¡ãããããŸã åŠçãããŠããªã (ãä¿çäžãã¹ããŒã¿ã¹) ã¡ãã»ãŒãžã®å±¥æŽãèŠæ±ã§ããŸãã
ããæå³ãã°ã«ãŒãã®ç¶æ ã¯æ¬¡ã®ããã«è¡šçŸã§ããŸãã
+----------------------------------------+
| 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 ã®äž»ãªã³ãã³ãã«ã€ããŠèª¬æããŸãã
- Xã°ã«ãŒã ã°ã«ãŒãã®äœæãç Žæ£ã管çã«äœ¿çšãããŸã
- XREADGROUP ã°ã«ãŒããä»ããŠã¹ããªãŒã ãèªã¿åãããã«äœ¿çšãããŸã
- ã¶ã㯠- ãã®ã³ãã³ãã䜿çšãããšããµãã¹ã¯ã©ã€ããŒã¯ã¡ãã»ãŒãžãæ£åžžã«åŠçããããã®ãšããŠããŒã¯ã§ããŸãã
æ¶è²»è å£äœã®åµèš
mystream ããã§ã«ååšãããšä»®å®ããŸãã ã°ã«ãŒãäœæã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
> XGROUP CREATE mystream mygroup $
OK
ã°ã«ãŒããäœæãããšãã¯ãã°ã«ãŒããã¡ãã»ãŒãžãåä¿¡ããèå¥åãæž¡ãå¿
èŠããããŸãã ãã¹ãŠã®æ°ããã¡ãã»ãŒãžãåä¿¡ãããã ãã®å Žåã¯ãç¹å¥ãªèå¥å $ ã䜿çšã§ããŸã (äžèšã®äŸã®ããã«)ã ç¹å¥ãªèå¥åã®ä»£ããã« 0 ãæå®ãããšãã¹ã¬ããå
ã®ãã¹ãŠã®ã¡ãã»ãŒãžãã°ã«ãŒãã§å©çšã§ããããã«ãªããŸãã
ã°ã«ãŒããäœæãããã®ã§ã次ã®ã³ãã³ãã䜿çšããŠããã«ã¡ãã»ãŒãžã®èªã¿åããéå§ã§ããŸãã XREADGROUPã ãã®ã³ãã³ãã¯æ¬¡ãšãã䌌ãŠããŸã XREAD ãªãã·ã§ã³ã® BLOCK ãªãã·ã§ã³ããµããŒãããŸãã ãã ããå¿ é ã® GROUP ãªãã·ã§ã³ããããåžžã« XNUMX ã€ã®åŒæ° (ã°ã«ãŒãåãšãµãã¹ã¯ã©ã€ãå) ãšãšãã«æå®ããå¿ èŠããããŸãã 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 ã®ã¡ã³ããŒã¯ããããŸã§èª°ã«ãé ä¿¡ãããããšã®ãªã XNUMX ã€ã®ã¡ãã»ãŒãžã mystream ããèªã¿ãããšæã£ãŠããŸããã
ãµãã¹ã¯ã©ã€ãã¯ãã°ã«ãŒãã«å¯ŸããŠæäœãå®è¡ãããã³ã«ãã°ã«ãŒãå ã§èªåèªèº«ãäžæã«èå¥ããååãæäŸããå¿ èŠããããŸãã äžèšã®ã³ãã³ãã«ã¯ãç¹å¥ãªèå¥åã">ããšããéåžžã«éèŠãªè©³çŽ°ããã XNUMX ã€ãããŸãã ãã®ç¹å¥ãªèå¥åã¯ã¡ãã»ãŒãžããã£ã«ã¿ãªã³ã°ãããããŸã§ã«é ä¿¡ãããããšã®ãªãã¡ãã»ãŒãžã®ã¿ãæ®ããŸãã
ãŸããç¹æ®ãªå Žåã«ã¯ã0 ãªã©ã®å®éã®èå¥åããã®ä»ã®æå¹ãªèå¥åãæå®ã§ããŸãã ãã®å Žåãã³ãã³ã㯠XREADGROUP æå®ããããµãã¹ã¯ã©ã€ã (Alice) ã«é ä¿¡ããããã®ã®ãã³ãã³ãã䜿çšããŠãŸã 確èªãããŠããªããä¿çäžãã¹ããŒã¿ã¹ã®ã¡ãã»ãŒãžã®å±¥æŽãè¿ããŸãã ã¶ãã¯.
ãªãã·ã§ã³ã䜿çšããã« ID 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"
ç§ã®ã°ã«ãŒãã®ã¡ã³ããŒã§ããããã¯ãã¡ãã»ãŒãžã XNUMX ã€ãŸã§ã«ããŠã»ãããšèŠæ±ããŸããã ãã®ã³ãã³ãã¯ãç¹å¥ãªèå¥åã">ããåå ã§é ä¿¡ãããªãã£ãã¡ãã»ãŒãžã®ã¿ãå ±åããŸãã ã芧ã®ãšãããããªã³ãŽããšããã¡ãã»ãŒãžã¯ãã§ã«ã¢ãªã¹ã«å±ããããŠãããã衚瀺ããããããã¯ããªã¬ã³ãžããšãã€ããŽããåãåããŸãã
ããããããšã§ãã¢ãªã¹ããããããã³ã°ã«ãŒãã®ä»ã®å å ¥è ã¯ãåãã¹ããªãŒã ããç°ãªãã¡ãã»ãŒãžãèªã¿åãããšãã§ããŸãã ãŸããæªåŠçã®ã¡ãã»ãŒãžã®å±¥æŽãèªãã ããã¡ãã»ãŒãžãåŠçæžã¿ãšããŠããŒã¯ãããããããšãã§ããŸãã
çæãã¹ãç¹ãããã€ããããŸãã
- å å ¥è ãã¡ãã»ãŒãžãã³ãã³ããšã¿ãªããšããã«ã XREADGROUPããã®ã¡ãã»ãŒãžã¯ãä¿çäžãç¶æ ã«ãªãããã®ç¹å®ã®å å ¥è ã«å²ãåœãŠãããŸãã ä»ã®ã°ã«ãŒã賌èªè ã¯ãã®ã¡ãã»ãŒãžãèªãããšãã§ããŸããã
- 賌èªè ã¯æåã®èšåæã«èªåçã«äœæããããããæ瀺çã«äœæããå¿ èŠã¯ãããŸããã
- ãšãšãââã« XREADGROUP åæã«è€æ°ã®ç°ãªãã¹ã¬ããããã¡ãã»ãŒãžãèªã¿åãããšãã§ããŸããããããæ©èœãããã«ã¯ããŸãã次ã䜿çšããŠåã¹ã¬ããã«åãååã®ã°ã«ãŒããäœæããå¿ èŠããããŸãã Xã°ã«ãŒã
é害åŸã®å埩
å å
¥è
ã¯é害ããå埩ãããä¿çäžãã¹ããŒã¿ã¹ã®ã¡ãã»ãŒãžã®ãªã¹ããå床èªã¿åãããšãã§ããŸãã ãã ããçŸå®ã®äžçã§ã¯ããµãã¹ã¯ã©ã€ããŒãæçµçã«å€±æããå¯èœæ§ããããŸãã ãµãã¹ã¯ã©ã€ããé害ããå埩ã§ããªãå Žåããµãã¹ã¯ã©ã€ãã®æ»çã¡ãã»ãŒãžã¯ã©ããªããŸãã?
Consumer Group ã¯ããŸãã«ãã®ãããªå Žåãã€ãŸãã¡ãã»ãŒãžã®ææè
ãå€æŽããå¿
èŠãããå Žåã«äœ¿çšãããæ©èœãæäŸããŸãã
æåã«è¡ãå¿ èŠãããã®ã¯ãã³ãã³ããåŒã³åºãããšã§ã æ¯åºäžãã¹ããŒã¿ã¹ããä¿çäžãã®ã°ã«ãŒãå ã®ãã¹ãŠã®ã¡ãã»ãŒãžã衚瀺ãããŸãã æãåçŽãªåœ¢åŒã§ã¯ãã³ãã³ã㯠XNUMX ã€ã®åŒæ° (ã¹ã¬ããåãšã°ã«ãŒãå) ã ãã䜿çšããŠåŒã³åºãããŸãã
> XPENDING mystream mygroup
1) (integer) 2
2) 1526569498055-0
3) 1526569506935-0
4) 1) 1) "Bob"
2) "2"
ããŒã ã¯ãã°ã«ãŒãå šäœãšåå å ¥è ã®æªåŠçã¡ãã»ãŒãžã®æ°ã衚瀺ããŸããã ã¢ãªã¹ãèŠæ±ããå¯äžã®ã¡ãã»ãŒãžã確èªããããããããã«ã¯ XNUMX ã€ã®æªåŠçã®ã¡ãã»ãŒãžãããããŸããã ã¶ãã¯.
ããå€ãã®åŒæ°ã䜿çšããŠãããå€ãã®æ å ±ãèŠæ±ã§ããŸãã
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ãå å ¥è åãããªç§åäœã®ã¢ã€ãã«æéããããŠæåŸã«é ä¿¡è©Šè¡åæ°ãåŸãããŸããã ããããã®ã¡ãã»ãŒãžã 74170458 件ããã20 ããªç§ãã€ãŸãçŽ XNUMX æéã¢ã€ãã«ç¶æ ã«ãªã£ãŠããŸãã
ã䜿çšããã ãã§ã¡ãã»ãŒãžã®å 容ã確èªããããšã誰ãæ¢ããŠããªãããšã«æ³šæããŠãã ããã ãšã¯ã¹ã¬ã³ãž.
> XRANGE mystream 1526569498055-0 1526569498055-0
1) 1) 1526569498055-0
2) 1) "message"
2) "orange"
åŒæ°å ã§åãèå¥åã 20 åç¹°ãè¿ãã ãã§ãã ããçšåºŠã®ã¢ã€ãã¢ãåŸãããã®ã§ãã¢ãªã¹ã¯ XNUMX æéã®ããŠã³ã¿ã€ã ã®åŸãããã¯ããããå埩ããªããšå€æãããããã®ã¡ãã»ãŒãžãã¯ãšãªããŠããã®ããã«åŠçãåéããææãæ¥ããšå€æãããããããŸããã ãã®ããã«ã次ã®ã³ãã³ãã䜿çšããŸã XCLAIM:
XCLAIM {key} {group} {consumer} {min-idle-time} {ID-1} {ID-2} ... {ID-N}
ãã®ã³ãã³ãã䜿çšãããšãææè
ã {consumer} ã«å€æŽããããšã§ããŸã åŠçãããŠããªããå€éšãã¡ãã»ãŒãžãåä¿¡ã§ããŸãã ãã ããæå°ã¢ã€ãã«æé {min-idle-time} ãæå®ããããšãã§ããŸãã ããã¯ãXNUMX ã€ã®ã¯ã©ã€ã¢ã³ããåãã¡ãã»ãŒãžã®ææè
ãåæã«å€æŽããããšããç¶æ³ãåé¿ããã®ã«åœ¹ç«ã¡ãŸãã
Client 1: XCLAIM mystream mygroup Alice 3600000 1526569498055-0
Clinet 2: XCLAIM mystream mygroup Lora 3600000 1526569498055-0
æåã®é¡§å®¢ã¯ããŠã³ã¿ã€ã ããªã»ããããé
éã«ãŠã³ã¿ãŒãå¢ãããŸãã ãããã£ãŠãXNUMX çªç®ã®ã¯ã©ã€ã¢ã³ãã¯ããããªã¯ãšã¹ãã§ããŸããã
> XCLAIM mystream mygroup Alice 3600000 1526569498055-0
1) 1) 1526569498055-0
2) 1) "message"
2) "orange"
ã¡ãã»ãŒãžã¯ã¢ãªã¹ã«ãã£ãŠæ£åžžã«èŠæ±ãããã¢ãªã¹ã¯ã¡ãã»ãŒãžãåŠçããŠç¢ºèªå¿çã§ããããã«ãªããŸããã
äžèšã®äŸããããªã¯ãšã¹ããæåãããšã¡ãã»ãŒãžèªäœã®å 容ãè¿ãããããšãããããŸãã ãã ããããã¯å¿ é ã§ã¯ãããŸããã JUSTID ãªãã·ã§ã³ã¯ãã¡ãã»ãŒãž ID ã®ã¿ãè¿ãããã«äœ¿çšã§ããŸãã ããã¯ãã¡ãã»ãŒãžã®è©³çŽ°ã«ã¯èå³ããªããã·ã¹ãã ã®ããã©ãŒãã³ã¹ãåäžããããå Žåã«äŸ¿å©ã§ãã
å® é ã«ãŠã³ã¿ãŒ
åºåã«è¡šç€ºãããã«ãŠã³ã¿ãŒ æ¯åºäž åã¡ãã»ãŒãžã®é ä¿¡æ°ã§ãã ãã®ãããªã«ãŠã³ã¿ã¯ XNUMX ã€ã®æ¹æ³ã§å¢å ããŸããã¡ãã»ãŒãžã次ã®æ¹æ³ã§æ£åžžã«èŠæ±ããããšãã 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 mystream MAXLEN 10
> XTRIM mystream MAXLEN ~ 10
æ°žç¶çãªã¹ãã¬ãŒãžãšã¬ããªã±ãŒã·ã§ã³
Redis Stream ã¯ã¹ã¬ãŒã ããŒãã«éåæçã«ã¬ããªã±ãŒããããAOF (ãã¹ãŠã®ããŒã¿ã®ã¹ãããã·ã§ãã) ã RDB (ãã¹ãŠã®æžã蟌ã¿æäœã®ãã°) ãªã©ã®ãã¡ã€ã«ã«ä¿åãããŸãã ã³ã³ã·ã¥ãŒã ã°ã«ãŒãç¶æ ã®ã¬ããªã±ãŒã·ã§ã³ããµããŒããããŠããŸãã ãããã£ãŠãã¡ãã»ãŒãžããã¹ã¿ãŒ ããŒãã§ãä¿çäžãã¹ããŒã¿ã¹ã«ããå Žåãã¹ã¬ãŒã ããŒãã§ããã®ã¡ãã»ãŒãžã¯åãã¹ããŒã¿ã¹ã«ãªããŸãã
ã¹ããªãŒã ããã®åã ã®èŠçŽ ã®åé€
ã¡ãã»ãŒãžãåé€ããããã®ç¹å¥ãªã³ãã³ãããããŸã 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"
ãã®ã³ãã³ãã䜿çšãããšãã¯ãå®éã®ã¡ã¢ãªãããã«è§£æŸãããªãããšãèæ ®ããå¿ èŠããããŸãã
é·ããŒãã®ã¹ããªãŒã
ã¹ããªãŒã ãšä»ã® Redis ããŒã¿æ§é ã®éãã¯ãä»ã®ããŒã¿æ§é ã«èŠçŽ ãå«ãŸããªããªããšãå¯äœçšãšããŠããŒã¿æ§é èªäœãã¡ã¢ãªããåé€ãããããšã§ãã ãããã£ãŠãããšãã°ãZREM åŒã³åºãã«ãã£ãŠæåŸã®èŠçŽ ãåé€ããããšããœãŒããããã»ããã¯å®å šã«åé€ãããŸãã 代ããã«ãã¹ã¬ããã¯å éšã«èŠçŽ ããªããŠãã¡ã¢ãªå ã«æ®ãããšãã§ããŸãã
ãŸãšã
Redis Stream ã¯ãã¡ãã»ãŒãž ãããŒã«ãŒãã¡ãã»ãŒãž ãã¥ãŒãçµ±åãã°ãå±¥æŽä¿æãã£ãã ã·ã¹ãã ã®äœæã«æé©ã§ãã
ãã€ãŠèšã£ãããã«
åºæïŒ habr.com