рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо - рддреБрдордЪреНрдпрд╛ рдореЗрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреА рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА

рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо - рддреБрдордЪреНрдпрд╛ рдореЗрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреА рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА

Redis рд╕реНрдЯреНрд░реАрдо рд╣рд╛ Redis рдордзреНрдпреЗ рдЖрд╡реГрддреНрддреА 5.0 рд╕рд╣ рд╕рд╛рджрд░ рдХреЗрд▓реЗрд▓рд╛ рдирд╡реАрди рдЕрдореВрд░реНрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗ
рд╕рдВрдХрд▓реНрдкрдиреЗрдиреБрд╕рд╛рд░, рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо рд╣реА рдПрдХ рд╕реВрдЪреА рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣реА рдиреЛрдВрджреА рдЬреЛрдбреВ рд╢рдХрддрд╛. рдкреНрд░рддреНрдпреЗрдХ рдПрдВрдЯреНрд░реАрд▓рд╛ рдПрдХ рдпреБрдирд┐рдХ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдЕрд╕рддреЛ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЖрдпрдбреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдд рдЯрд╛рдЗрдорд╕реНрдЯреЕрдореНрдк рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЛ. рддреНрдпрд╛рдореБрд│реЗ, рддреБрдореНрд╣реА рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рд░реЗрдХреЙрд░реНрдбрдЪреНрдпрд╛ рд░реЗрдВрдЬрдЪреА рдХреНрд╡реЗрд░реА рдХрд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдд рдЖрд▓реНрдпрд╛рд╡рд░ рдирд╡реАрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛, рдЬрд╕реЗ рдХреА Unix "tail -f" рдХрдорд╛рдВрдб рд▓реЙрдЧ рдлрд╛рдЗрд▓ рд╡рд╛рдЪрддреЗ рдЖрдгрд┐ рдирд╡реАрди рдбреЗрдЯрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдд рдЕрд╕рддрд╛рдирд╛ рдлреНрд░реАрдЭ рд╣реЛрддреЗ. рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдЕрдиреЗрдХ рдХреНрд▓рд╛рдпрдВрдЯ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдереНрд░реЗрдб рдРрдХреВ рд╢рдХрддрд╛рдд, рдЬреНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдЕрдиреЗрдХ "tail -f" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рди рдХрд░рддрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдлрд╛рдЗрд▓ рд╡рд╛рдЪреВ рд╢рдХрддрд╛рдд.

рдирд╡реАрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╛рдЪреЗ рд╕рд░реНрд╡ рдлрд╛рдпрджреЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдЕрдВрд╢рддрдГ рдкреНрд░рддрд┐рдХреГрддреА рдмрдирд╡рдгрд╛рд░реНтАНрдпрд╛ рджреАрд░реНрдШрдХрд╛рд│рд╛рдкрд╛рд╕реВрди рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдХрдбреЗ рдПрдХ рджреНрд░реБрдд рдирдЬрд░ рдЯрд╛рдХреВрдпрд╛.

рд░реЗрдбрд┐рд╕ PUB/SUB

Redis Pub/Sub рд╣реА рдПрдХ рд╕рд╛рдзреА рдореЗрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдо рдЖрд╣реЗ рдЬреА рддреБрдордЪреНрдпрд╛ рдХреА-рд╡реНрд╣реЕрд▓реНрдпреВ рд╕реНрдЯреЛрдЕрд░рдордзреНрдпреЗ рдЖрдзреАрдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рд╕рд╛рдзреЗрдкрдгрд╛ рдХрд┐рдВрдорддреАрд╡рд░ рдпреЗрддреЛ:

  • рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рдкреНрд░рдХрд╛рд╢рдХ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕, рддреЛ рддреНрдпрд╛рдЪреЗ рд╕рд░реНрд╡ рд╕рджрд╕реНрдп рдЧрдорд╛рд╡рддреЛ
  • рдкреНрд░рдХрд╛рд╢рдХрд╛рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╕рджрд╕реНрдпрд╛рдВрдЪрд╛ рдЕрдЪреВрдХ рдкрддреНрддрд╛ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
  • рдЬрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд▓рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рдЭрд╛рд▓рд╛ рддрд░ рдкреНрд░рдХрд╛рд╢рдХ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рдХрд╛рдорд╛рд╕рд╣ рдУрд╡реНрд╣рд░рд▓реЛрдб рдХрд░реВ рд╢рдХрддреЛ
  • рдХрд┐рддреА рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рддреЛ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрдгрд┐ рддреЗ рдпрд╛ рд╕рдВрджреЗрд╢рд╛рд╡рд░ рдХрд┐рддреА рд▓рд╡рдХрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрд▓реЗ рдпрд╛рдЪреА рдкрд░реНрд╡рд╛ рди рдХрд░рддрд╛, рдкреНрд░рдХрд╛рд╢рдирд╛рдирдВрддрд░ рд▓рдЧреЗрдЪрдЪ рдкреНрд░рдХрд╛рд╢рдХрд╛рдЪреНрдпрд╛ рдмрдлрд░рдордзреВрди рд╕рдВрджреЗрд╢ рд╣рдЯрд╡рд┐рд▓рд╛ рдЬрд╛рддреЛ.
  • рд╕рд░реНрд╡ рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓. рд╕рдорд╛рди рд╕рдВрджреЗрд╢рд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рдорд╛рд╡рд░ рд╕рджрд╕реНрдпрд╛рдВрдиреА рд╕реНрд╡рддрдГрдордзреНрдпреЗ рдХрд╕реЗ рддрд░реА рд╕рд╣рдордд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рд╕рджрд╕реНрдпрд╛рдиреЗ рд╕рдВрджреЗрд╢рд╛рд╡рд░ рдпрд╢рд╕реНрд╡реАрдкрдгреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЖрд╣реЗ рдпрд╛рдЪреА рдкреБрд╖реНрдЯреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреАрд╣реА рдЕрдВрдЧрднреВрдд рдпрдВрддреНрд░рдгрд╛ рдирд╛рд╣реА. рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рд╕рджрд╕реНрдпрд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓рд╛ рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдХреНрд░реЕрд╢ рдЭрд╛рд▓рд╛, рддрд░ рдкреНрд░рдХрд╛рд╢рдХрд╛рд▓рд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдирд╕рддреЗ.

Redis рдпрд╛рджреА

рд░реЗрдбрд┐рд╕ рд▓рд┐рд╕реНрдЯ рд╣реА рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЖрд╣реЗ рдЬреА рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рдХрдорд╛рдВрдбрд╕ рдмреНрд▓реЙрдХ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ. рддреБрдореНрд╣реА рд╕реВрдЪреАрдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрдкрд╛рд╕реВрди рдХрд┐рдВрд╡рд╛ рд╢реЗрд╡рдЯреА рд╕рдВрджреЗрд╢ рдЬреЛрдбреВ рдЖрдгрд┐ рд╡рд╛рдЪреВ рд╢рдХрддрд╛. рдпрд╛ рд╕рдВрд░рдЪрдиреЗрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдЖрдкрдг рдЖрдкрд▓реНрдпрд╛ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рд╕реНрдЯреЕрдХ рдХрд┐рдВрд╡рд╛ рд░рд╛рдВрдЧ рдмрдирд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдмрд░реНрдпрд╛рдЪ рдмрд╛рдмрддреАрдд рд╣реЗ рдкреБрд░реЗрд╕реЗ рдЕрд╕реЗрд▓. рд░реЗрдбрд┐рд╕ рдкрдм/рд╕рдм рдордзреАрд▓ рдореБрдЦреНрдп рдлрд░рдХ:

  • рд╕рдВрджреЗрд╢ рдПрдХрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдкреНрд░рдердо рд░реАрдб-рдмреНрд▓реЙрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдкреНрд░рдердо рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓.
  • рдХреНрд▓рд┐рдВрдЯрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢рд╛рд╕рд╛рдареА рд╕реНрд╡рддрдГ рд╡рд╛рдЪрди рдСрдкрд░реЗрд╢рди рд╕реБрд░реВ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рдпрд╛рджреАрд▓рд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдмрджреНрджрд▓ рдХрд╛рд╣реАрд╣реА рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА.
  • рд╕рдВрджреЗрд╢ рдЬреЛрдкрд░реНрдпрдВрдд рдХреЛрдгреАрддрд░реА рд╡рд╛рдЪрдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╣рдЯрд╡рдд рдирд╛рд╣реА рддреЛрдкрд░реНрдпрдВрдд рддреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдбрд┐рд╕реНрдХрд╡рд░ рдбреЗрдЯрд╛ рдлреНрд▓рд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА Redis рд╕рд░реНрд╡реНрд╣рд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рд╕, рд╕рд┐рд╕реНрдЯрдордЪреА рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рдирд╛рдЯрдХреАрдпрд░рд┐рддреНрдпрд╛ рд╡рд╛рдврддреЗ.

рдкреНрд░рд╡рд╛рд╣рд╛рдЪрд╛ рдкрд░рд┐рдЪрдп

рдкреНрд░рд╡рд╛рд╣рд╛рдд рдПрдВрдЯреНрд░реА рдЬреЛрдбрдд рдЖрд╣реЗ

рд╕рдВрдШ XADD рдкреНрд░рд╡рд╛рд╣рд╛рдд рдирд╡реАрди рдПрдВрдЯреНрд░реА рдЬреЛрдбрддреЗ. рд░реЗрдХреЙрд░реНрдб рдореНрд╣рдгрдЬреЗ рдлрдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╕рддреЗ, рддреНрдпрд╛рдд рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдХреА-рд╡реНрд╣реЕрд▓реНрдпреВ рдЬреЛрдбреНрдпрд╛ рдЕрд╕рддрд╛рдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдкреНрд░рддреНрдпреЗрдХ рдПрдВрдЯреНрд░реА рдЖрдзреАрдЪ рд╕рдВрд░рдЪрд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ CSV рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрд╕рд╛рд░рдЦреА рдЖрд╣реЗ.

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

рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рдЖрдореНрд╣реА рдкреНрд░рд╡рд╛рд╣рд╛рдд рджреЛрди рдлреАрд▓реНрдб рдЬреЛрдбрддреЛ (рдХреА) тАЬрдорд╛рдпрд╕реНрдЯреНрд░реАрдотАЭ: тАЬрд╕реЗрдиреНрд╕рд░-рдЖрдпрдбреАтАЭ рдЖрдгрд┐ тАЬрддрд╛рдкрдорд╛рдитАЭ рдпрд╛ рдореВрд▓реНрдпрд╛рдВрд╕рд╣ рдЕрдиреБрдХреНрд░рдореЗ тАЬ1234тАЭ рдЖрдгрд┐ тАЬ19.8тАЭ. рджреБрд╕рд░рд╛ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдореНрд╣рдгреВрди, рдХрдорд╛рдВрдб рдПрдХ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдШреЗрддреЗ рдЬреЛ рдПрдВрдЯреНрд░реАрд▓рд╛ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓ - рд╣рд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдкреНрд░рд╡рд╛рд╣рд╛рддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдПрдВрдЯреНрд░реА рдЕрджреНрд╡рд┐рддреАрдпрдкрдгреЗ рдУрд│рдЦрддреЛ. рддрдерд╛рдкрд┐, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЖрдореНрд╣реА * рдЙрддреНрддреАрд░реНрдг рдЭрд╛рд▓реЛ рдХрд╛рд░рдг рдЖрдореНрд╣рд╛рд▓рд╛ рд░реЗрдбрд┐рд╕рдиреЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдЖрдпрдбреА рдЬрдирд░реЗрдЯ рдХрд░рд╛рдпрдЪрд╛ рдЖрд╣реЗ. рдкреНрд░рддреНрдпреЗрдХ рдирд╡реАрди рдЖрдпрдбреА рд╡рд╛рдвреЗрд▓. рддреНрдпрд╛рдореБрд│реЗ, рдкреНрд░рддреНрдпреЗрдХ рдирд╡реАрди рдПрдВрдЯреНрд░реАрдордзреНрдпреЗ рдорд╛рдЧреАрд▓ рдиреЛрдВрджреАрдВрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдЙрдЪреНрдЪ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдЕрд╕реЗрд▓.

рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд╕реНрд╡рд░реВрдк

рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ рдПрдВрдЯреНрд░реА рдЖрдпрдбреА рдкрд░рдд рдЖрд▓рд╛ XADD, рджреЛрди рднрд╛рдЧрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ:

{millisecondsTime}-{sequenceNumber}

рдорд┐рд▓рд┐рд╕реЗрдХрдВрдж рд╡реЗрд│ - рдпреБрдирд┐рдХреНрд╕ рд╡реЗрд│ рдорд┐рд▓реАрд╕реЗрдХрдВрджрдордзреНрдпреЗ (рд░реЗрдбреАрд╕ рд╕рд░реНрд╡реНрд╣рд░ рд╡реЗрд│). рддрдерд╛рдкрд┐, рд╡рд░реНрддрдорд╛рди рд╡реЗрд│ рдорд╛рдЧреАрд▓ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрдЪреНрдпрд╛ рд╡реЗрд│реЗрдкреЗрдХреНрд╖рд╛ рд╕рдорд╛рди рдХрд┐рдВрд╡рд╛ рдХрдореА рдЕрд╕рд▓реНрдпрд╛рд╕, рдорд╛рдЧреАрд▓ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрдЪрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреЕрдореНрдк рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдореНрд╣рдгреВрди, рд╕рд░реНрд╡реНрд╣рд░рдЪреА рд╡реЗрд│ рд╡реЗрд│реЗрдд рдкрд░рдд рдЧреЗрд▓реНрдпрд╛рд╕, рдирд╡реАрди рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдЕрджреНрдпрд╛рдк рд╡рд╛рдвреАрд╡ рдЧреБрдгрдзрд░реНрдо рд░рд╛рдЦреВрди рдареЗрд╡реЗрд▓.

рдХреНрд░рдорд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рдорд┐рд▓рд┐рд╕реЗрдХрдВрджрдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рдХреНрд░рдорд╕рдВрдЦреНрдпрд╛ рдорд╛рдЧреАрд▓ рдПрдВрдЯреНрд░реАрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд 1 рдиреЗ рд╡рд╛рдврд╡рд▓реЗ тАЛтАЛрдЬрд╛рдИрд▓. рдХрд╛рд░рдг рдж рдХреНрд░рдорд╕рдВрдЦреНрдпрд╛ 64 рдмрд┐рдЯреНрд╕рдЪрд╛ рдЖрдХрд╛рд░ рдЖрд╣реЗ, рддрд░ рд╕рд░рд╛рд╡ рдордзреНрдпреЗ рддреБрдореНрд╣реА рдПрдХрд╛ рдорд┐рд▓рд┐рд╕реЗрдХрдВрджрд╛рдд рддрдпрд╛рд░ рд╣реЛрдгрд╛рд▒реНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╡рд░ рдорд░реНрдпрд╛рджрд╛ рдШрд╛рд▓реВ рдирдпреЗ.

рдЕрд╢рд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХрд╛рдВрдЪреЗ рд╕реНрд╡рд░реВрдк рдкрд╣рд┐рд▓реНрдпрд╛ рджреГрд╖реНрдЯреАрдХреНрд╖реЗрдкрд╛рдд рд╡рд┐рдЪрд┐рддреНрд░ рд╡рд╛рдЯреВ рд╢рдХрддреЗ. рдЕрд╡рд┐рд╢реНрд╡рд╛рд╕реВ рд╡рд╛рдЪрдХрд╛рд▓рд╛ рдХрджрд╛рдЪрд┐рдд рдЖрд╢реНрдЪрд░реНрдп рд╡рд╛рдЯреЗрд▓ рдХреА рд╡реЗрд│ рд╣рд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХрд╛рдЪрд╛ рднрд╛рдЧ рдХрд╛ рдЖрд╣реЗ. рдпрд╛рдЪреЗ рдХрд╛рд░рдг рдЕрд╕реЗ рдЖрд╣реЗ рдХреА Redis рдкреНрд░рд╡рд╛рд╣ ID рджреНрд╡рд╛рд░реЗ рд╢реНрд░реЗрдгреА рдХреНрд╡реЗрд░реАрд╕ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд. рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд░реЗрдХреЙрд░реНрдб рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реЗрд│реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдпрд╛рдореБрд│реЗ рд╡реЗрд│ рд╢реНрд░реЗрдгреАрдВрдЪреА рдХреНрд╡реЗрд░реА рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рдХрдорд╛рдВрдб рдкрд╛рд╣рддреЛ рддреЗрд╡реНрд╣рд╛ рдЖрдкрдг рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ 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 рд░реЗрдХреЙрд░реНрдб рдорд┐рд│рд╡реВ рд╢рдХрддреЛ. рдЖрдореНрд╣рд╛рд▓рд╛ рдкреБрдвреАрд▓ рдПрди рд░реЗрдХреЙрд░реНрдб (рдкреГрд╖реНрдард╛рдВрдХрди) рдорд┐рд│рд╡рд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рд╢реЗрд╡рдЯрдЪрд╛ рдкреНрд░рд╛рдкреНрдд рдЖрдпрдбреА рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ, рддреЛ рд╡рд╛рдврд╡реВ рд╢рдХрддреЛ рдХреНрд░рдорд╕рдВрдЦреНрдпрд╛ рдПрдХ рдХрд░реВрди рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд╡рд┐рдЪрд╛рд░рд╛. рд╣реЗ рдкреБрдвреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдд рдкрд╛рд╣реВ. рдЖрдореНрд╣реА 10 рдШрдЯрдХ рдЬреЛрдбрдгреНрдпрд╛рд╕ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЛ XADD (рдорд╛рдпрд╕реНрдЯреНрд░реАрдо рдЖрдзреАрдЪ 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)) рдЖрдгрд┐ рдирдВрддрд░ M рдШрдЯрдХ рдкрд░рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА O(M) рдЖрд╣реЗ, рддрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдЪрд░рдг рдЬрд▓рдж рдЖрд╣реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╡рд╛рдкрд░рдгреЗ XRANGE рдкреНрд░рд╡рд╛рд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд╣реЛрдК рд╢рдХрддрд╛рдд.

рд╕рдВрдШ XREVRANGE рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗ XRANGE, рдкрд░рдВрддреБ рдШрдЯрдХ рдЙрд▓рдЯ рдХреНрд░рдорд╛рдиреЗ рдкрд░рдд рдХрд░рддреЗ:

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

рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдЖрдЬреНрдЮрд╛ XREVRANGE рд╢реНрд░реЗрдгреА рд╡рд┐рддрд░реНрдХ рдЙрд▓рдЯ рдХреНрд░рдорд╛рдиреЗ рд╕реБрд░реВ рдЖрдгрд┐ рдерд╛рдВрдмрд╡рддреЗ.

XREAD рд╡рд╛рдкрд░реВрди рдирд╡реАрди рдиреЛрдВрджреА рд╡рд╛рдЪрдд рдЖрд╣реЗ

рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣рд╛рдЪреА рд╕рджрд╕реНрдпрддрд╛ рдШреЗрдгреЗ рдЖрдгрд┐ рдлрдХреНрдд рдирд╡реАрди рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЙрджреНрднрд╡рддреЗ. рд╣реА рд╕рдВрдХрд▓реНрдкрдирд╛ рд░реЗрдбрд┐рд╕ рдкрдм/рд╕рдм рдХрд┐рдВрд╡рд╛ рд░реЗрдбрд┐рд╕ рд▓рд┐рд╕реНрдЯ рдмреНрд▓реЙрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреА рд╡рд╛рдЯреВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо рдХрд╕рд╛ рд╡рд╛рдкрд░рд╛рдпрдЪрд╛ рдпрд╛рдд рдореВрд▓рднреВрдд рдлрд░рдХ рдЖрд╣реЗрдд:

  1. рдкреНрд░рддреНрдпреЗрдХ рдирд╡реАрди рд╕рдВрджреЗрд╢ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдпрд╛рд▓рд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╣реЗ рд╡рд░реНрддрди рдмреНрд▓реЙрдХрд┐рдВрдЧ рд░реЗрдбрд┐рд╕ рд╕реВрдЪреАрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ, рдЬрд┐рдереЗ рдирд╡реАрди рд╕рдВрджреЗрд╢ рдлрдХреНрдд рдПрдХрд╛ рд╕рджрд╕реНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡рд╛рдЪрд▓рд╛ рдЬрд╛рдИрд▓.
  2. Redis Pub/Sub рдордзреНрдпреЗ рдЕрд╕рддрд╛рдирд╛ рд╕рд░реНрд╡ рд╕рдВрджреЗрд╢ рд╡рд┐рд╕рд░рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдХрдзреАрд╣реА рдЯрд┐рдХрдд рдирд╛рд╣реАрдд, рд╕реНрдЯреНрд░реАрдордордзреНрдпреЗ рд╕рд░реНрд╡ рд╕рдВрджреЗрд╢ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд│рд╛рд╕рд╛рдареА рд░рд╛рдЦреВрди рдареЗрд╡рд▓реЗ рдЬрд╛рддрд╛рдд (рдЬреЛрдкрд░реНрдпрдВрдд рдХреНрд▓рд╛рдпрдВрдЯ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╣рдЯрд╡рд┐рдгреНрдпрд╛рд╕ рдХрд╛рд░рдгреАрднреВрдд рд╣реЛрдд рдирд╛рд╣реА).
  3. рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рд╕реНрдЯреНрд░реАрдордордзреАрд▓ рдореЗрд╕реЗрдЬрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рджрд╕реНрдп рдлрдХреНрдд рддреНрдпрд╛рдВрдЪрд╛ рд╡реИрдпрдХреНрддрд┐рдХ рд╕рдВрджреЗрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдкрд╛рд╣реВ рд╢рдХрддреЛ.

рддреБрдореНрд╣реА рдереНрд░реЗрдбрдЪреА рд╕рджрд╕реНрдпрддрд╛ рдШреЗрдК рд╢рдХрддрд╛ рдЖрдгрд┐ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдирд╡реАрди рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛ 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 рдкрд░реНрдпрд╛рдп рдРрдЪреНрдЫрд┐рдХ рдЖрд╣реЗ. рдЦрд░рдВ рддрд░, рдлрдХреНрдд рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ рд╕реНрдЯреНрд░реАрдореНрд╕ рдкрд░реНрдпрд╛рдп, рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рд▓ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХрд╛рд╕рд╣ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЛ. рдЖрдореНрд╣реА "рд╕реНрдЯреНрд░реАрдореНрд╕ рдорд╛рдпрд╕реНрдЯреНрд░реАрдо 0" рд▓рд┐рд╣рд┐рд▓реЗ - рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рдпрд╕реНрдЯреНрд░реАрдо рд╕реНрдЯреНрд░реАрдордЪреЗ рд╕рд░реНрд╡ рд░реЗрдХреЙрд░реНрдб "0-0" рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХрд╛рд╕рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗрдд. рдЬрд╕реЗ рддреБрдореНрд╣реА рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░реВрди рдкрд╛рд╣реВ рд╢рдХрддрд╛, рдХрдорд╛рдВрдб рдереНрд░реЗрдбрдЪреЗ рдирд╛рд╡ рджреЗрддреЗ рдХрд╛рд░рдг рдЖрдореНрд╣реА рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдереНрд░реЗрдбреНрд╕рдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреЗрдК рд╢рдХрддреЛ. рдЖрдореНрд╣реА рд▓рд┐рд╣реВ рд╢рдХрддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "STREAMS mystream otherstream 0 0". рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╕реНрдЯреНрд░реАрдореНрд╕ рдкрд░реНрдпрд╛рдпрд╛рдирдВрддрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдердо рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреА рдирд╛рд╡реЗ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪ рдУрд│рдЦрдХрд░реНрддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдпрд╛ рд╕реЛрдкреНрдпрд╛ рдлреЙрд░реНрдордордзреНрдпреЗ рдХрдорд╛рдВрдб рдХрд╛рд╣реА рд╡рд┐рд╢реЗрд╖ рдХрд░рдд рдирд╛рд╣реА XRANGE. рддрдерд╛рдкрд┐, рдордиреЛрд░рдВрдЬрдХ рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА рдЖрдкрдг рд╕рд╣рдЬрдкрдгреЗ рд╡рд│реВ рд╢рдХрддреЛ XREAD рдмреНрд▓реЙрдХ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди, рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрдорд╛рдВрдбрд╡рд░:

> XREAD BLOCK 0 STREAMS mystream $

рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ, рдПрдХ рдирд╡реАрди рдмреНрд▓реЙрдХ рдкрд░реНрдпрд╛рдп 0 рдорд┐рд▓реАрд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдпрддреЗрд╕рд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ (рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд│рд╛рд╕рд╛рдареА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдгреЗ). рд╢рд┐рд╡рд╛рдп, рдорд╛рдпрд╕реНрдЯреНрд░реАрдо рд╕реНрдЯреНрд░реАрдорд╕рд╛рдареА рдиреЗрд╣рдореАрдЪрд╛ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдУрд│рдЦрдХрд░реНрддрд╛ $ рдкрд╛рд╕ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛. рд╣рд╛ рд╡рд┐рд╢реЗрд╖ рдУрд│рдЦрдХрд░реНрддрд╛ рдореНрд╣рдгрдЬреЗ 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

рд╣рд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо рдХрдиреНрдЭреНрдпреБрдорд░ рдЧреНрд░реБрдк рдирд╛рд╡рд╛рдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рд╡рд╛рдкрд░рддреЗ. рд╣реА рд╕рдВрдХрд▓реНрдкрдирд╛ рдЫрджреНрдо-рдЧреНрд░рд╛рд╣рдХ рд╕рд╛рд░рдЦреАрдЪ рдЖрд╣реЗ, рдЬреА рдкреНрд░рд╡рд╛рд╣рд╛рдХрдбреВрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ, рдкрд░рдВрддреБ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдПрдХрд╛ рдЧрдЯрд╛рддреАрд▓ рдПрдХрд╛рдзрд┐рдХ рд╕рджрд╕реНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рд╕реЗрд╡рд╛ рджрд┐рд▓реА рдЬрд╛рддреЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рдореА рдкреНрд░рджрд╛рди рдХрд░рддреЗ:

  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 - рд╣реА рдХрдорд╛рдВрдб рд╕рдмрд╕реНрдХреНрд░рд╛рдЗрдмрд░рд▓рд╛ рдореЗрд╕реЗрдЬрд╡рд░ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛рдЪреЗ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ

рдЧреНрд░рд╛рд╣рдХ рдЧрдЯрд╛рдЪреА рдирд┐рд░реНрдорд┐рддреА

рдорд╛рдпрд╕реНрдЯреНрд░реАрдо рдЖрдзреАрдЪ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ рдЕрд╕реЗ рдорд╛рдиреВ рдпрд╛. рдордЧ рдЧреНрд░реБрдк рдХреНрд░рд┐рдПрд╢рди рдХрдорд╛рдВрдб рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:

> 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"

рд╡рд░реАрд▓ рдЖрдЬреНрдЮрд╛ рд╢рдмреНрджрд╢рдГ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╡рд╛рдЪрддреЗ:

"рдореА, рдорд╛рдпрдЧреНрд░реБрдкрдЪрд╛ рд╕рджрд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕреЕрд▓рд┐рд╕рд▓рд╛, рдорд╛рдпрд╕реНрдЯреНрд░реАрдордЪрд╛ рдПрдХ рдореЗрд╕реЗрдЬ рд╡рд╛рдЪрд╛рдпрдЪрд╛ рдЖрд╣реЗ рдЬреЛ рдпрд╛рдЖрдзреА рдХреБрдгрд╛рд▓рд╛рд╣реА рджрд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдирд╛рд╣реА."

рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджрд╛ рд╕рджрд╕реНрдп рд╕рдореВрд╣рд╛рд╡рд░ рдСрдкрд░реЗрд╢рди рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдиреЗ рддреНрдпрд╛рдЪреЗ рдирд╛рд╡ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рд╕рдореВрд╣рд╛рдордзреНрдпреЗ рд╕реНрд╡рддрдГрдЪреА рдУрд│рдЦ рдЕрджреНрд╡рд┐рддреАрдпрдкрдгреЗ рдХреЗрд▓реА рдкрд╛рд╣рд┐рдЬреЗ. рд╡рд░реАрд▓ рдЖрджреЗрд╢рд╛рдд рдЖрдгрдЦреА рдПрдХ рдЕрддрд┐рд╢рдп рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рддрдкрд╢реАрд▓ рдЖрд╣реЗ - рд╡рд┐рд╢реЗрд╖ рдУрд│рдЦрдХрд░реНрддрд╛ ">". рд╣рд╛ рд╡рд┐рд╢реЗрд╖ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд╕рдВрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░ рдХрд░рддреЛ, рдлрдХреНрдд рддреЗрдЪ рд╕реЛрдбрддреЛ рдЬреЗ рдпрд╛рдкреВрд░реНрд╡реА рдХрдзреАрд╣реА рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реАрдд.

рддрд╕реЗрдЪ, рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рддреБрдореНрд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдЬрд╕реЗ рдХреА 0 рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдХреЛрдгрддрд╛рд╣реА рд╡реИрдз рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЖрджреЗрд╢ XREADGROUP рддреБрдореНрд╣рд╛рд▓рд╛ "рдкреНрд░рд▓рдВрдмрд┐рдд" рд╕реНрдерд┐рддреАрд╕рд╣ рд╕рдВрджреЗрд╢рд╛рдВрдЪрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░рдд рдХрд░реЗрд▓ рдЬреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рджрд╕реНрдп (рдЕреЕрд▓рд┐рд╕) рд▓рд╛ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ рдкрд░рдВрддреБ рдЖрджреЗрд╢ рд╡рд╛рдкрд░реВрди рдЕрджреНрдпрд╛рдк рд╕реНрд╡реАрдХрд╛рд░рд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реАрдд XACK.

рдкрд░реНрдпрд╛рдпрд╛рд╢рд┐рд╡рд╛рдп, ID 0 рддреНрд╡рд░рд┐рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди рдЖрдореНрд╣реА рдпрд╛ рд╡рд░реНрддрдирд╛рдЪреА рдЪрд╛рдЪрдгреА рдХрд░реВ рд╢рдХрддреЛ COUNT. рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдПрдХрдЪ рдкреНрд░рд▓рдВрдмрд┐рдд рд╕рдВрджреЗрд╢ рджрд┐рд╕реЗрд▓, рддреЛ рдореНрд╣рдгрдЬреЗ, рд╕рдлрд░рдЪрдВрдж рд╕рдВрджреЗрд╢:

> 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"

рдорд╛рдпрдЧреНрд░реБрдкрдЪрд╛ рд╕рджрд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмреЙрдмрдиреЗ рджреЛрдирдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╕рдВрджреЗрд╢ рдорд╛рдЧрд┐рддрд▓реЗ рдирд╛рд╣реАрдд. рдХрдорд╛рдВрдб рд╕реНрдкреЗрд╢рд▓ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ ">" рдореБрд│реЗ рдХреЗрд╡рд│ рд╡рд┐рддрд░рд┐рдд рди рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рддрдХреНрд░рд╛рд░ рдХрд░рддреЗ. рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, "рд╕рдлрд░рдЪрдВрдж" рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА рдХрд╛рд░рдг рддреЛ рдЖрдзреАрдЪ рдЕреЕрд▓рд┐рд╕рд▓рд╛ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдмреЙрдмрд▓рд╛ "рд╕рдВрддреНрд░рд╛" рдЖрдгрд┐ "рд╕реНрдЯреНрд░реЙрдмреЗрд░реА" рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЕреЕрд▓рд┐рд╕, рдмреЙрдм рдЖрдгрд┐ рдЧрдЯрд╛рддреАрд▓ рдЗрддрд░ рдХреЛрдгрддреЗрд╣реА рд╕рджрд╕реНрдп рдПрдХрд╛рдЪ рдкреНрд░рд╡рд╛рд╣рд╛рддреАрд▓ рднрд┐рдиреНрди рд╕рдВрджреЗрд╢ рд╡рд╛рдЪреВ рд╢рдХрддрд╛рдд. рддреЗ рддреНрдпрд╛рдВрдЪрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪрд╛ рдЗрддрд┐рд╣рд╛рд╕ рджреЗрдЦреАрд▓ рд╡рд╛рдЪреВ рд╢рдХрддрд╛рдд рдХрд┐рдВрд╡рд╛ рд╕рдВрджреЗрд╢рд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реЗрд▓реЗ рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░реВ рд╢рдХрддрд╛рдд.

рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдХрд╛рд╣реА рдЧреЛрд╖реНрдЯреА рдЖрд╣реЗрдд:

  • рдЬрд┐рддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рдЧреНрд░рд╛рд╣рдХрд╛рдиреЗ рд╕рдВрджреЗрд╢рд╛рд╕ рдЖрдЬреНрдЮрд╛ рдорд╛рдирд▓реА XREADGROUP, рд╣рд╛ рд╕рдВрджреЗрд╢ "рдкреНрд░рд▓рдВрдмрд┐рдд" рд╕реНрдерд┐рддреАрдд рдЬрд╛рддреЛ рдЖрдгрд┐ рддреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рджрд╕реНрдпрд╛рд╕ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЗрддрд░ рдЧрдЯ рд╕рджрд╕реНрдп рд╣рд╛ рд╕рдВрджреЗрд╢ рд╡рд╛рдЪрдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдирд╕рддреАрд▓.
  • рдкреНрд░рдердо рдЙрд▓реНрд▓реЗрдЦ рдХреЗрд▓реНрдпрд╛рд╡рд░ рд╕рджрд╕реНрдп рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рддреНрдпрд╛рдВрдирд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.
  • рдЪреНрдпрд╛ рдорджрддреАрдиреЗ XREADGROUP рддреБрдореНрд╣реА рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдереНрд░реЗрдбреНрд╕рдЪреЗ рд╕рдВрджреЗрд╢ рд╡рд╛рдЪреВ рд╢рдХрддрд╛, рддрдерд╛рдкрд┐ рд╣реЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдердо рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдбрд╕рд╛рдареА рд╕рдорд╛рди рдирд╛рд╡рд╛рдиреЗ рдЧрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. XGROUP

рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА

рд╕рджрд╕реНрдп рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ "рдкреНрд░рд▓рдВрдмрд┐рдд" рд╕реНрдерд┐рддреАрд╕рд╣ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рд╕реВрдЪреА рдкреБрдиреНрд╣рд╛ рд╡рд╛рдЪреВ рд╢рдХрддреЛ. рддрдерд╛рдкрд┐, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрдЧрд╛рдд, рд╕рджрд╕реНрдп рд╢реЗрд╡рдЯреА рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд╢рдХрддрд╛рдд. рд╕рджрд╕реНтАНрдп рд╕рджрд╕реНтАНрдп рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНтАНрдпрд╛рд╕ рддреНтАНрдпрд╛рдЪреНтАНрдпрд╛ рдЕрдбрдХрд▓реЗрд▓реНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪреЗ рдХрд╛рдп рд╣реЛрддреЗ?
рдЧреНрд░рд╛рд╣рдХ рдЧрдЯ рдПрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдСрдлрд░ рдХрд░рддреЛ рдЬреЗ рдлрдХреНрдд рдЕрд╢рд╛ рдкреНрд░рдХрд░рдгрд╛рдВрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ - рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪреЗ рдорд╛рд▓рдХ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ.

рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд╣рд┐рд▓реА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рдХрдорд╛рдВрдб рдХреЙрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ 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}

рдпрд╛ рдЖрджреЗрд╢рд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдЖрдореНтАНрд╣реА рдПрдХ "рд╡рд┐рджреЗрд╢реА" рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддреЛ рдЬреНрдпрд╛рд╡рд░ рдЕрджреНрдпрд╛рдк рдорд╛рд▓рдХ рдмрджрд▓реВрди {рдЙрдкрднреЛрдХреНрддрд╛} рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЧреЗрд▓реА рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рдЖрдореНрд╣реА рдХрд┐рдорд╛рди рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╡реЗрд│ {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 рд╡рд╛рдкрд░рддрд╛рдирд╛, рдЬреБрдиреЗ рд░реЗрдХреЙрд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рд╛рдВрдмреАрдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрд▓реНрдпрд╛рд╡рд░ рдЖрдкреЛрдЖрдк рд╣рдЯрд╡рд▓реЗ рдЬрд╛рддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рдкреНрд░рд╡рд╛рд╣рд╛рдЪрд╛ рдЖрдХрд╛рд░ рд╕реНрдерд┐рд░ рдЕрд╕рддреЛ. рддрдерд╛рдкрд┐, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЫрд╛рдЯрдгреА рд░реЗрдбрд┐рд╕ рдореЗрдорд░реАрдордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рдХрд╛рд░реНрдпрдХреНрд╖рдо рдорд╛рд░реНрдЧрд╛рдиреЗ рд╣реЛрдд рдирд╛рд╣реА. рдЖрдкрдг рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕реБрдзрд╛рд░реВ рд╢рдХрддрд╛:

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

рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рддреАрд▓ ~ рдпреБрдХреНрддрд┐рд╡рд╛рджрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдЪреА рд▓рд╛рдВрдмреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдпрд╛рдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рд╣реА 1000 рдкреЗрдХреНрд╖рд╛ рдореЛрдареА рдХрд┐рдВрд╡рд╛ рдмрд░реЛрдмрд░реАрдЪреА рдХреЛрдгрддреАрд╣реА рд╕рдВрдЦреНрдпрд╛ рдЕрд╕реВ рд╢рдХрддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 1000, 1010, рдХрд┐рдВрд╡рд╛ 1030). рдЖрдореНтАНрд╣реА рдЖрдореНтАНрд╣реА рд╕реНтАНрдкрд╖реНтАНрдЯрдкрдгреЗ рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ рдХреА рдЖрдордЪреНтАНрдпрд╛ рд╕реНтАНрдЯреНрд░реАрдордиреЗ рдХрд┐рдорд╛рди 1000 рд░реЗрдХреЙрд░реНрдб рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНтАНрдпрд╛рдЪреА рдЖрдордЪреА рдЗрдЪреНрдЫрд╛ рдЖрд╣реЗ. рд╣реЗ рд░реЗрдбрд┐рд╕рдордзреНрдпреЗ рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдХрд░рддреЗ.

рдПрдХ рд╡реЗрдЧрд│реА рдЯреАрдорд╣реА рдЖрд╣реЗ XTRIM, рдЬреЗ рд╕рдорд╛рди рдЧреЛрд╖реНрдЯ рдХрд░рддреЗ:

> XTRIM mystream MAXLEN 10

> XTRIM mystream MAXLEN ~ 10

рд╕рддрдд рд╕реНрдЯреЛрд░реЗрдЬ рдЖрдгрд┐ рдкреНрд░рддрд┐рдХреГрддреА

рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдордЪреА рд╕реНрд▓реЗрд╡реНрд╣ рдиреЛрдбреНрд╕рд╡рд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХрдкрдгреЗ рдкреНрд░рддрд┐рдХреГрддреА рдмрдирд╡рд┐рд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ 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"

рд╣реА рдЖрдЬреНрдЮрд╛ рд╡рд╛рдкрд░рддрд╛рдирд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЗрдорд░реА рддреНрд╡рд░рд┐рдд рд╕реЛрдбрд▓реА рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА.

рд╢реВрдиреНрдп рд▓рд╛рдВрдмреАрдЪреЗ рдкреНрд░рд╡рд╛рд╣

рд╕реНрдЯреНрд░реАрдо рдЖрдгрд┐ рдЗрддрд░ рд░реЗрдбрд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреАрд▓ рдлрд░рдХ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЬреЗрд╡реНрд╣рд╛ рдЗрддрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреНрдпреЗ рдШрдЯрдХ рдирд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдореНрд╣рдгреВрди, рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╕реНрд╡рддрдГ рдореЗрдорд░реАрдордзреВрди рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреЗ. рдореНрд╣рдгреВрди, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬреЗрд╡реНрд╣рд╛ ZREM рдХреЙрд▓ рд╢реЗрд╡рдЯрдЪрд╛ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХреЗрд▓ рддреЗрд╡реНрд╣рд╛ рдХреНрд░рдорд╡рд╛рд░реА рдХреЗрд▓реЗрд▓рд╛ рд╕рдВрдЪ рдкреВрд░реНрдгрдкрдгреЗ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓рд╛ рдЬрд╛рдИрд▓. рддреНрдпрд╛рдРрд╡рдЬреА, рдЖрдд рдХреЛрдгрддреЗрд╣реА рдШрдЯрдХ рдирд╕рддрд╛рдирд╛рд╣реА рдереНрд░реЗрдбрдирд╛ рдореЗрдорд░реАрдордзреНрдпреЗ рд░рд╛рд╣рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ.

рдирд┐рд╖реНрдХрд░реНрд╖

рдореЗрд╕реЗрдЬ рдмреНрд░реЛрдХрд░, рдореЗрд╕реЗрдЬ рдХреНрдпреВ, рдпреБрдирд┐рдлрд╛рдЗрдб рд▓реЙрдЧрд┐рдВрдЧ рдЖрдгрд┐ рд╣рд┐рд╕реНрдЯреНрд░реА-рдХреАрдкрд┐рдВрдЧ рдЪреЕрдЯ рд╕рд┐рд╕реНрдЯрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░реЗрдбрд┐рд╕ рд╕реНрдЯреНрд░реАрдо рдЖрджрд░реНрд╢ рдЖрд╣реЗ.

рдореА рдПрдХрджрд╛ рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдирд┐рдХрд▓реЙрд╕ рд╡рд┐рд░реНрде, рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЗ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдЖрд╣реЗрдд рдЖрдгрд┐ рд░реЗрдбрд┐рд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рджреЛрдиреНрд╣реА рдЖрдзреАрдЪ рджреЗрддреЗ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛