Redis рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рддрд░рд┐рдд рд▓рдХ

рд╣реЗ рд╣рд╛рдмрд░!

рдЖрдЬ рд╣рд╛рдореА рддрдкрд╛рдЗрдБрдХреЛ рдзреНрдпрд╛рдирдорд╛ Redis рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рддрд░рд┐рдд рд▓рдХ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдПрдХ рдЬрдЯрд┐рд▓ рд▓реЗрдЦ рдХреЛ рдЕрдиреБрд╡рд╛рдж рд▓реНрдпрд╛рдЙрдБрдЫреМрдВ рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдПрдХ рд╡рд┐рд╖рдп рдХреЛ рд░реВрдк рдорд╛ Redis рдХреЛ рд╕рдВрднрд╛рд╡рдирд╛рд╣рд░реБ рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдХреБрд░рд╛ рдЧрд░реНрди рдЖрдордиреНрддреНрд░рд┐рдд рдЧрд░реНрджрдЫред рдорд╛рд░реНрдЯрд┐рди рдХреНрд▓реЗрдкрдореНрдпрд╛рди, рдкреБрд╕реНрддрдХрдХрд╛ рд▓реЗрдЦрдХрдмрд╛рдЯ рдкреНрд░рд╢реНрдирдорд╛ рд░реЗрдбрд▓рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдордХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг "рдЙрдЪреНрдЪ рд▓реЛрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ", рджрд┐рдЗрдПрдХреЛ рдЫ рдпрд╣рд╛рдБ.

рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрдЯреЗрдб рд▓рдХрд┐рдЩ рдзреЗрд░реИ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рдЖрджрд┐рдо рд╣реЛ рдЬрд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рд╕рд╛рдЭрд╛ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд░реВрдкрдорд╛ рдЕрдирдиреНрдп рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫред

рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд░ рдкреЛрд╖реНрдЯрд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ Redis рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ DLM (рд╡рд┐рддрд░рд┐рдд рд▓рдХ рдкреНрд░рдмрдиреНрдзрдХ) рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ, рддрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рдлрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ рдереЛрд░реИ рдкрд░рд┐рд╖реНрдХреГрдд рдбрд┐рдЬрд╛рдЗрдирдХреЛ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рддреБрд▓рдирд╛рдорд╛ рдПрдХрджрдо рдХрдордЬреЛрд░ рдЫрдиреНред

рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдПрдХ рд╕рд╢рд░реНрдд рдХреНрдпрд╛рдиреЛрдирд┐рдХрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреМрдВ рдЬрд╕рд▓реЗ Redis рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рддрд░рд┐рдд рд▓рдХ рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдБрдЫред рд╣рд╛рдореА рдПрдЙрдЯрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдордХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд░реЗрдбрд▓рдХ, рдпрд╕рд▓реЗ рдПрдХ рд╡рд┐рддрд░рд┐рдд рд▓рдХ рдкреНрд░рдмрдиреНрдзрдХ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ рд░, рд╣рд╛рдореНрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рд╛рдорд╛рдиреНрдп рдПрдХрд▓-рдЙрджрд╛рд╣рд░рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рднрдиреНрджрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫред рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрджрдЫреМрдВ рдХрд┐ рд╕рдореБрджрд╛рдпрд▓реЗ рдпрд╕рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрдиреЗрдЫ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗрдЫ, рд░ рдпрд╕рд▓рд╛рдИ рдердк рдЬрдЯрд┐рд▓ рд╡рд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд░реВрд╡рд╛рдд рдмрд┐рдиреНрджреБрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдПрд▓реНрдЧреЛрд░рд┐рджрдордХреЛ рд╡рд┐рд╡рд░рдгрдорд╛ рдЬрд╛рдиреБ рдЕрдШрд┐, рд╣рд╛рдореА рддрдпрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫреМрдВред рддрд┐рдиреАрд╣рд░реВ рд╕рдиреНрджрд░реНрднрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

  • Redlock-rb (рд░реБрдмреА рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред рдкрдирд┐ рдЫ рдХрд╛рдБрдЯрд╛ Redlock-rb, рдЬрд╕рд▓реЗ рд╡рд┐рддрд░рдгрдХреЛ рд╕рд╣рдЬрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЬ (рд░рддреНрди) рдердкреНрдЫ, рд░ рддреНрдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рд╣реЛрдЗрдиред
  • Redlock-py (рдкрд╛рдЗрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • Aioredlock (Asyncio Python рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • Redlock-php (PHP рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • PHPRedisMutex (PHP рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)
  • cheprasov/php-redis-lock (рд▓рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ PHP рдкреБрд╕реНрддрдХрд╛рд▓рдп)
  • Redsync (Go рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • рд░реЗрдбрд┐рд╕рди (рдЬрд╛рднрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • Redis::DistLock (Perl рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • Redlock-cpp (C++ рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • Redlock-cs (C#/.NET рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред
  • RedLock.net (C#/.NET рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред async рд░ рд▓рдХ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рдеред
  • рд╕реНрдХрд╛рд░реНрд▓реЗрдЯ рд▓рдХ (рдХрдиреНрдлрд┐рдЧрд░ рдпреЛрдЧреНрдп рдбрд╛рдЯрд╛ рд╕реНрдЯреЛрд░рдХреЛ рд╕рд╛рде C# .NET рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)
  • Redlock4Net (C# .NET рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)
  • рдиреЛрдб-рд░реЗрдбрд▓рдХ (NodeJS рдХреЛ рд▓рд╛рдЧреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред рддрд╛рд▓рд╛рд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рд╕реБрд░рдХреНрд╖рд╛ рд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ

рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдбрд┐рдЬрд╛рдЗрдирд▓рд╛рдИ рдХреЗрд╡рд▓ рддреАрди рдЧреБрдгрд╣рд░реВрдХрд╛ рд╕рд╛рде рдореЛрдбреЗрд▓ рдЧрд░реНрди рдЬрд╛рдБрджреИрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рд╡рд┐рддрд░рд┐рдд рд▓рдХ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

  1. рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореНрдкрддреНрддрд┐: рдЖрдкрд╕реА рдмрд╣рд┐рд╖реНрдХрд╛рд░ред рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛, рдХреЗрд╡рд▓ рдПрдХ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рд╕рдорд╛рддреНрди рд╕рдХреНрдЫред
  2. рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕рдореНрдкрддреНрддрд┐ A: рдХреБрдиреИ рдЧрддрд┐рд░реЛрдзрд╣рд░реВ рдЫреИрдирдиреНред рд╕реНрд░реЛрдд рд▓рдХ рдЧрд░реНрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдЕрд╕рдлрд▓ рднрдПрдорд╛ рд╡рд╛ рдлрд░рдХ рдбрд┐рд╕реНрдХ рдЦрдгреНрдбрдорд╛ рдЕрд╡рддрд░рдг рднрдП рдкрдирд┐ рдЕрдиреНрддрддрдГ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред
  3. рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕рдореНрдкрддреНрддрд┐ B: рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ред рдЬрдмрд╕рдореНрдо Redis рдиреЛрдбрд╣рд░реВрдХреЛ рдмрд╣реБрдордд рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рддрд╛рд▓рд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд░ рдЬрд╛рд░реА рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫрдиреНред

рдХрд┐рди рдЕрд╕рдлрд▓рддрд╛ рд░рд┐рдХрднрд░реАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╕ рдорд╛рдорд▓рд╛ рдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЫреИрди
рд╣рд╛рдореА рдХреЗ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдЬрд╛рдБрджреИрдЫреМрдВ рднрдиреЗрд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, Redis рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдзреЗрд░реИ рд╡рд┐рддрд░рд┐рдд рд▓рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрд╕рдБрдЧ рд╣рд╛рд▓рдХреЛ рдЕрд╡рд╕реНрдерд╛рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реМрдВред

Redis рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд░реЛрдд рд▓рдХ рдЧрд░реНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рддрд░рд┐рдХрд╛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд╣реЛред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдПрдЙрдЯрд╛ рдХреБрдЮреНрдЬреА рд╕реАрдорд┐рдд рдЬреАрд╡рдирдХрд╛рд▓рдХреЛ рд╕рд╛рде рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫ, рдпреЛ Redis рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдврд┐рд▓реЛ рд╡рд╛ рдкрдЫрд┐ рдпреЛ рдХреБрдЮреНрдЬреА рдЬрд╛рд░реА рд╣реБрдиреНрдЫ (рд╣рд╛рдореНрд░реЛ рд╕реВрдЪреАрдорд╛ рд╕рдореНрдкрддреНрддрд┐ реи)ред рдЬрдм рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рд╕реНрд░реЛрдд рд░рд┐рд▓рд┐рдЬ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдпрд╕рд▓реЗ рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрдБрдЫред

рдкрд╣рд┐рд▓реЛ рдирдЬрд░ рдорд╛, рдпреЛ рд╕рдорд╛рдзрд╛рди рдПрдХрджрдо рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рддреНрдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЫ: рд╣рд╛рдореНрд░реЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдПрдХрд▓ рдмрд┐рдиреНрджреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред рдХреЗ рд╣реБрдиреНрдЫ рдпрджрд┐ рд╣реЛрд╕реНрдЯ Redis рдЙрджрд╛рд╣рд░рдг рдЕрд╕рдлрд▓ рднрдпреЛ? рддреНрдпрд╕реЛ рднрдП рджрд╛рд╕ рдердкреМрдВ! рд░ рдпрджрд┐ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдЕрдиреБрдкрд▓рдмреНрдз рдЫ рднрдиреЗ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпреЛ рд╡рд┐рдХрд▓реНрдк рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЫреИрдиред рдпрд╕реЛ рдЧрд░реНрджрд╛, рд╣рд╛рдореАрд▓реЗ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдЧреБрдгрд▓рд╛рдИ рд░рд╛рдореНрд░рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗ рдЫреИрдиреМрдВ, рдХрд┐рдирднрдиреЗ Redis рдорд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд╣реБрдиреНрдЫред

рдЬрд╛рд╣рд┐рд░ рдЫ, рдпрд╕реНрддреЛ рдореЛрдбреЗрд▓ рдорд╛ рдПрдХ рджреМрдб рдЕрд╡рд╕реНрдерд╛ рд╣реБрдиреНрдЫ:

  1. рдЧреНрд░рд╛рд╣рдХ A рд▓реЗ рдорд╛рд╕реНрдЯрд░рдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред
  2. рдХреБрдЮреНрдЬреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджрд╛рд╕рд▓рд╛рдИ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБ рдЕрдШрд┐ рдорд╛рд▓рд┐рдХ рдЕрд╕рдлрд▓ рд╣реБрдиреНрдЫред
  3. рдЕрдиреБрдпрд╛рдпреАрд▓рд╛рдИ рдиреЗрддрд╛рдорд╛ рдкрджреЛрдиреНрдирддрд┐ рдЧрд░рд┐рдиреНрдЫред
  4. A рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд▓рдХ рдЧрд░реЗрдХреЛ рдПрдЙрдЯреИ рд╕реНрд░реЛрддрдорд╛ рдЧреНрд░рд╛рд╣рдХ B рд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫред рд╕реБрд░рдХреНрд╖рд╛ рдЙрд▓реНрд▓рдЩреНрдШрди!

рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдЫ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛, рдЬрд╕реНрддреИ рдЕрд╕рдлрд▓рддрд╛рдорд╛, рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рдПрдХреИ рд╕рдордпрдорд╛ рд▓рдХ рд╕рдорд╛рддреНрди рд╕рдХреНрдЫрдиреНред рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЕрдиреНрдпрдерд╛, рд╣рд╛рдореА рдпрд╕ рд▓реЗрдЦрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╕рдорд╛рдзрд╛рди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреМрдВред

рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд╕рд╛рде рд╕рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдПрдХрд▓-рдЗрдиреНрд╕реНрдЯреЗрдиреНрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рдХрдордЬреЛрд░реАрд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБ рдЕрдШрд┐, рдпреЛ рд╕рд░рд▓ рдорд╛рдорд▓рд╛рд▓рд╛рдИ рдХрд╕рд░реА рдареАрдХрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмреБрдЭреМрдВ, рдХрд┐рдирдХрд┐ рдпреЛ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдорд╛рдиреНрдп рдЫ рдЬрд╣рд╛рдБ рд╕рдордп-рд╕рдордпрдорд╛ рд░реЗрд╕ рдЕрд╡рд╕реНрдерд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЫ, рд░ рдпреЛ рдкрдирд┐ рдмреНрд▓рдХ рдЧрд░реНрджрд╛ред рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдгрд▓реЗ рдпрд╣рд╛рдБ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рддрд░рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдордорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред

рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рдпреЛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

SET resource_name my_random_value NX PX 30000

рдпреЛ рдЖрджреЗрд╢рд▓реЗ 30000 рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб (PX рд╡рд┐рдХрд▓реНрдк) рдХреЛ рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐рдХреЛ рд╕рд╛рде, рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдирднрдПрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдорд╛рддреНрд░ рдХреБрдЮреНрдЬреА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрдЫ (NX рд╡рд┐рдХрд▓реНрдк)ред рдХреБрдЮреНрдЬреА "рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫmyrandomvalue" рдпреЛ рдорд╛рди рд╕рдмреИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рд░ рд╕рдмреИ рд▓рдХ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдЕрджреНрд╡рд┐рддреАрдп рд╣реБрдиреБрдкрд░реНрдЫред
рд╕рд╛рдзрд╛рд░рдгрддрдпрд╛, рд▓рдХрд▓рд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рд░рд┐рд▓рд┐рдЬ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдирд┐рдпрдорд┐рдд рдорд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, Redis рд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрдирд┐рдПрдХреЛ рдЫ: рдпрджрд┐ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗ рдорд╛рддреНрд░ рдХреБрдЮреНрдЬреА рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН рд░ рдпрд╕рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдорд╛рди рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреЛ рдирд┐рдореНрди рд▓реБрдЖ рд▓рд┐рдкрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣рд╛рд╕рд┐рд▓ рдЧрд░рд┐рдПрдХреЛ рдЫ:

if redis.call("get",KEYS[1]) == ARGV[1] then
    return redis.call("del",KEYS[1])
else
    return 0
end

рдЕрд░реНрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯрджреНрд╡рд╛рд░рд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рд▓рдХ рд╣рдЯрд╛рдЙрди рдпреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдПрдХ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдкрд╣рд┐рд▓реЛ рд▓рдХ рднрдиреНрджрд╛ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдЪрд▓реНрдиреЗ рдХреБрдиреИ рдХрд╛рд░реНрдпрдорд╛ рд▓рдХ рд╣реБрди рд╕рдХреНрдЫ (рддрд╛рдХрд┐ рд╕рд╛рдБрдЪреЛрдХреЛ рдореНрдпрд╛рдж рд╕рдХрд┐рдиреЗ рд╕рдордп рдЫ), рд░ рдкрдЫрд┐ рдХреЗрд╣реА рдЕрдиреНрдп рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд░рд╛рдЦреЗрдХреЛ рд▓рдХ рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред
рд╕рд╛рдзрд╛рд░рдг DEL рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЫ рдХрд┐рдирднрдиреЗ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдЕрд░реНрдХреЛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд░рд╛рдЦреЗрдХреЛ рд▓рдХ рд╣рдЯрд╛рдЙрди рд╕рдХреНрдЫред рдпрд╕рдХреЛ рд╡рд┐рдкрд░рд┐рдд, рдорд╛рдерд┐рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рдкреНрд░рддреНрдпреЗрдХ рд▓рдХ рдЕрдирд┐рдпрдорд┐рдд рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рд╛рде "рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд" рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдпрд╕рд▓рд╛рдИ рд░рд╛рдЦреНрдиреЗ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдорд╛рддреНрд░ рдпрд╕рд▓рд╛рдИ рд╣рдЯрд╛рдЙрди рд╕рдХреНрдЫред

рдпреЛ рдЕрдирд┐рдпрдорд┐рдд рд╕реНрдЯреНрд░рд┐рдЩ рдХреЗ рд╣реБрдиреБрдкрд░реНрдЫ? рдо рдЕрдиреБрдорд╛рди рдЧрд░реНрджреИрдЫреБ рдХрд┐ рдпреЛ /dev/urandom рдмрд╛рдЯ 20 рдмрд╛рдЗрдЯреНрд╕ рд╣реБрдиреБрдкрд░реНрдЫ, рддрд░ рддрдкрд╛рдИрд▓реЗ рдЖрдлреНрдиреЛ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рд╕реНрдЯреНрд░рд┐рдЩрд▓рд╛рдИ рдкрд░реНрдпрд╛рдкреНрдд рдЕрджреНрд╡рд┐рддреАрдп рдмрдирд╛рдЙрди рдХрдо рдорд╣рдБрдЧреЛ рддрд░рд┐рдХрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, RC4 рд▓рд╛рдИ /dev/urandom рд╕рдБрдЧ рд╕реАрдб рдЧрд░реНрдиреБ рд░рд╛рдореНрд░реЛ рд╣реБрдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рдмрд╛рдЯ рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдЯреНрд░рд┐рдо рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рдирд▓реЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХреЗрдиреНрдб рд░рд┐рдЬреЛрд▓реНрдпреБрд╕рди рд░ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЖрдИрдбреАрдорд╛ рдпреБрдирд┐рдХреНрд╕ рд╕рдордпрдХреЛ рд╕рдВрдпреЛрдЬрди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ; рдпреЛ рддреНрдпрддрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫреИрди, рддрд░ рдпреЛ рд╕рдореНрднрд╡рддрдГ рдзреЗрд░реИ рд╕рдиреНрджрд░реНрднрд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрдорд╛ рдирд┐рд░реНрднрд░ рдЫред

рд╣рд╛рдореАрд▓реЗ рдХреБрдЮреНрдЬреАрдХреЛ рдЬреАрд╡рдирдХрд╛рд▓рдХреЛ рдорд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдордпрд▓рд╛рдИ "рд▓рдХ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо" рднрдирд┐рдиреНрдЫред рдпреЛ рдорд╛рди рднрдиреЗрдХреЛ рд▓рдХ рд╕реНрд╡рддрдГ рд░рд┐рд▓рд┐рдЬ рд╣реБрдиреБ рдЕрдШрд┐рдХреЛ рд╕рдордп рд░ рдЕрд░реНрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рддреНрдпрд╕ рд╕реНрд░реЛрддрд▓рд╛рдИ рд▓рдХ рдЧрд░реНрди рд╕рдХреНрдиреБ рдЕрдШрд┐ рдПрдХ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд╕рдЮреНрдЪрд╛рд▓рди рдкреВрд░рд╛ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рд╕рдордп рджреБрд╡реИ рд╣реЛ, рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЖрдкрд╕реА рдмрд╣рд┐рд╖реНрдХрд░рдг рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ рдЙрд▓реНрд▓рдЩреНрдШрди рдирдЧрд░реАред рдпреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рд╕рдордпрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рдиреНрдбреЛрдорд╛ рдорд╛рддреНрд░ рд╕реАрдорд┐рдд рдЫ, рдЬреБрди рд▓рдХ рдЦрд░рд┐рдж рдЧрд░рд┐рдПрдХреЛ рдХреНрд╖рдгрдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫред

рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореАрд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд░ рдЬрд╛рд░реА рдЧрд░реНрдиреЗ рд░рд╛рдореНрд░реЛ рддрд░рд┐рдХрд╛рдорд╛ рдЫрд▓рдлрд▓ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдкреНрд░рдгрд╛рд▓реА (рдпрджрд┐ рд╣рд╛рдореА рдПрдХ рдПрдХрд▓ рд░ рд╕рдзреИрдВ рдЙрдкрд▓рдмреНрдз рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рд╡реЗрд╢ рдЧреИрд░-рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ) рд╕реБрд░рдХреНрд╖рд┐рдд рдЫред рдпрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛рд▓рд╛рдИ рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реМрдВ, рдЬрд╣рд╛рдБ рд╣рд╛рдореАрд╕рдБрдЧ рддреНрдпрд╕реНрддреЛ рдХреБрдиреИ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЫреИрдиред

Redlock рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдордХреЛ рд╡рд┐рддрд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдгрд▓реЗ рд╣рд╛рдореАрд╕рдБрдЧ рдПрди рд░реЗрдбрд┐рд╕ рдорд╛рд╕реНрдЯрд░рд╣рд░реВ рдЫрдиреН рднрдиреА рдорд╛рдиреНрджрдЫред рдпреА рдиреЛрдбрд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рдмрд╛рдЯ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╡рд╛ рдХреБрдиреИ рдЕрдиреНрдп рдирд┐рд╣рд┐рдд рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиреМрдВред рд╣рд╛рдореАрд▓реЗ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд░ рд▓рдХ рдЬрд╛рд░реА рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдХрднрд░ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо, рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрджрд╛, рдареНрдпрд╛рдХреНрдХреИ рдпреЛ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫ рднрдиреЗрд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рд╣рд╛рдореАрд▓реЗ N рд▓рд╛рдИ 5 рдорд╛ рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВ, рдЬреБрди рдЙрдЪрд┐рдд рдореВрд▓реНрдп рд╣реЛред рдпрд╕реИрд▓реЗ, рд╣рд╛рдореАрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдХрдореНрдкреНрдпреБрдЯрд░ рд╡рд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ 5 Redis рдорд╛рд╕реНрдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рдмрд╛рдЯ рдзреЗрд░реИ рд╣рджрд╕рдореНрдо рд╕реНрд╡рддрдиреНрддреНрд░ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫрдиреНред

рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдирд┐рдореНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрджрдЫ:

  1. рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╣рд╛рд▓рдХреЛ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред
  2. рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рд╕рдмреИ N рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫ, рд╕рдмреИ рдХреЗрд╕рд╣рд░реВрдорд╛ рд╕рдорд╛рди рдХреБрдЮреНрдЬреА рдирд╛рдо рд░ рдЕрдирд┐рдпрдорд┐рдд рдорд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред рдЪрд░рдг 2 рдорд╛, рдЬрдм рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдкреНрд░рддрд┐-рдЙрджрд╛рд╣рд░рдгрдХреЛ рдЖрдзрд╛рд░рдорд╛ рд▓рдХ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджрдЫ, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдврд┐рд▓рд╛рдЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рдЬреБрди рд▓рдХ рд╕реНрд╡рддрдГ рд░рд┐рд▓рд┐рдЬ рднрдПрдХреЛ рд╕рдордпрдХреЛ рддреБрд▓рдирд╛рдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдпрджрд┐ рдЕрд╡рд░реБрджреНрдз рдЕрд╡рдзрд┐ 10 рд╕реЗрдХреЗрдиреНрдб рд╣реЛ, рддрдм рдврд┐рд▓рд╛рдЗ ~5-50 рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб рдХреЛ рджрд╛рдпрд░рд╛рдорд╛ рд╣реБрди рд╕рдХреНрдЫред рдпрд╕рд▓реЗ рдЕрд╕рдлрд▓ рд░реЗрдбрд┐рд╕ рдиреЛрдбрдорд╛ рдкреБрдЧреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрд╛ рдЧреНрд░рд╛рд╣рдХ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдЕрд╡рд░реБрджреНрдз рд░рд╣рди рд╕рдХреНрдиреЗ рдЕрд╡рд╕реНрдерд╛рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрдЫ: рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрдкрд▓рдмреНрдз рдЫ рднрдиреЗ, рд╣рд╛рдореА рд╕рдХреЗрд╕рдореНрдо рдЪрд╛рдБрдбреЛ рдЕрд░реНрдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫреМрдВред
  3. рд▓рдХ рд▓рд┐рдирдХреЛ рд▓рд╛рдЧрд┐, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдХрддрд┐ рд╕рдордп рдмрд┐рддрд┐рд╕рдХреЗрдХреЛ рдЫ рднрдиреЗрд░ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ; рдпреЛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ рдЪрд░рдг 1 рдорд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдкрд▓рд╛рдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдорд╛рдирдмрд╛рдЯ рдШрдЯрд╛рдЙрдБрдЫред рдпрджрд┐ рд░ рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ (рдХрдореНрддреАрдорд╛ 3) рдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдПрдорд╛, рд░ рдпрд╕рд▓реЗ рдХреБрд▓ рд╕рдордп рд▓рд┐рдпреЛред рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд▓рдХ рдЕрд╡рдзрд┐ рднрдиреНрджрд╛ рдХрдо, рд▓рдХ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдорд╛рдирд┐рдиреНрдЫред
  4. рдпрджрд┐ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рд▓рдХ рдЕрд╡рдзрд┐рд▓рд╛рдИ рдЪрд░рдг 3 рдорд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдмрд┐рддреЗрдХреЛ рд╕рдордп рдШрдЯрд╛рдПрд░ рдореВрд▓ рд▓рдХ рдЕрд╡рдзрд┐ рдорд╛рдирд┐рдиреНрдЫред
  5. рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдХреБрдиреИ рдХрд╛рд░рдгрд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдлрд▓ рднрдпреЛ рднрдиреЗ (рдХрд┐ рдд рдпреЛ N/2+1 рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд▓рдХ рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдо рдерд┐рдпреЛ, рд╡рд╛ рд▓рдХ рдЕрд╡рдзрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рдерд┐рдпреЛ), рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рд▓реЗ рд╕рдмреИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЕрдирд▓рдХ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫ (рдпрд╕рд▓реЗ рдмреНрд▓рдХ рдЧрд░реНрди рдирд╕рдХреНрдиреЗ рд╕реЛрдЪреЗрдХреЛ рдкрдирд┐ред )ред

рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЫ?

рдпреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдмреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рдХреБрдиреИ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреНрдб рдШрдбреА рдирднрдП рдкрдирд┐, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд╛рдиреАрдп рд╕рдордп рдЕрдЭреИ рдкрдирд┐ рд▓рдЧрднрдЧ рдЙрд╣реА рдЧрддрд┐рдорд╛ рдмрдЧреНрдЫ, рд░ рд▓рдХ рднрдПрдХреЛ рдХреБрд▓ рд╕рдордпрдХреЛ рддреБрд▓рдирд╛рдорд╛ рддреНрд░реБрдЯрд┐ рд╕рд╛рдиреЛ рдЫ рднрдиреНрдиреЗ рдзрд╛рд░рдгрд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЬрд╛рд░реАред рдпреЛ рдзрд╛рд░рдгрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХрдореНрдкреНрдпреВрдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╕рдБрдЧ рдзреЗрд░реИ рд╕рдорд╛рди рдЫ: рдкреНрд░рддреНрдпреЗрдХ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рд╕реНрдерд╛рдиреАрдп рдШрдбреА рдЫ, рд░ рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрдереНрдпрдорд╛ рдЧрдгрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдХрдореНрдкреНрдпреБрдЯрд░рд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдордп рднрд┐рдиреНрдирддрд╛ рд╕рд╛рдиреЛ рдЫред

рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдирд┐рдпрдорд▓рд╛рдИ рдЕрдЭ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдмрдирд╛рдЙрдиреБ рдкрд░реНрдЫ: рдпрджрд┐ рд▓рдХ рдорд╛рдиреНрдп рднрдПрдХреЛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рд╡реИрдз рднрдПрдХреЛ рд╕рдордпрдорд╛ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХреНрдпреЛ рднрдиреЗ рдорд╛рддреНрд░ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдмрд╣рд┐рд╖реНрдХрд╛рд░рдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░рд┐рдиреНрдЫ (рдЪрд░рдг 3 рдорд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдПрдХреЛ рдпреЛ рдорд╛рди), рдорд╛рдЗрдирд╕ рдХреЗрд╣рд┐ рд╕рдордп (рдХреБрд▓ рдХреЗрд╣рд┐ред рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдордп рднрд┐рдиреНрдирддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдЧрд░реНрди рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрд╣рд░реВ)ред

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

рдЕрд╕рдлрд▓рддрд╛рдорд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдЬрдм рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдлрд▓ рд╣реБрдиреНрдЫ, рдпреЛ рдЕрдирд┐рдпрдорд┐рдд рдврд┐рд▓рд╛рдЗ рдкрдЫрд┐ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫ; рдпреЛ рдПрдХреИ рд╕рдордпрдорд╛ рдПрдЙрдЯреИ рд╕реНрд░реЛрддрдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рдбрд┐-рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░рд┐рдиреНрдЫ (рдЬрд╕рд▓реЗ "рд╡рд┐рднрд╛рдЬрд┐рдд-рдорд╕реНрддрд┐рд╖реНрдХ" рд╕реНрдерд┐рддрд┐ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫ рдЬрд╕рдорд╛ рдХреБрдиреИ рд╡рд┐рдЬреЗрддрд╛рд╣рд░реВ рдЫреИрдирдиреН)ред рдердк рд░реВрдкрдорд╛, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдзреЗрд░реИрдЬрд╕реЛ Redis рджреГрд╖реНрдЯрд╛рдиреНрддрд╣рд░реВрдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЬрддрд┐ рдЫрд┐рдЯреЛ рдЧрд░реНрдЫ, рд╡рд┐рдиреНрдбреЛ рд╕рд╛рдБрдШреБрд░реЛ рд╣реБрдиреНрдЫ рдЬрд╕рдорд╛ рд╕реНрдкреНрд▓рд┐рдЯ-рдмреНрд░реЗрди рдЕрд╡рд╕реНрдерд╛ рд╣реБрди рд╕рдХреНрдЫ (рд░ рдкреБрди: рдкреНрд░рдпрд╛рд╕рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдо рд╣реБрдиреНрдЫ)ред рддрд╕рд░реНрде, рдЖрджрд░реНрд╢ рд░реВрдкрдорд╛, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ N рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ SET рдЖрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдзреЗрд░реИрдЬрд╕реЛ рддрд╛рд▓рд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдлрд▓ рд╣реБрдиреЗ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ (рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛) рдЕрдзрд┐рдЧреНрд░рд╣рдг рдЧрд░рд┐рдПрдХрд╛ рддрд╛рд▓рд╛рд╣рд░реВ рд░рд┐рд▓рд┐рдЬ рдЧрд░реНрди рдХрддреНрддрд┐рдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рднрдиреЗрд░ рдпрд╣рд╛рдБ рдЬреЛрдб рджрд┐рди рд▓рд╛рдпрдХ рдЫ, рддрд╛рдХрд┐ рдЙрдиреАрд╣рд░реВрд▓реЗ рд╕реНрд░реЛрддрдорд╛ рднрдПрдХреЛ рддрд╛рд▓рд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБ рдЕрдШрд┐ рд╕рд╛рдБрдЪреЛрдХреЛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реБрди рдкрд░реНрдЦрдиреБ рдкрд░реНрджреИрдиред (рдпрджреНрдпрдкрд┐ рдпрджрд┐ рд╕рдЮреНрдЬрд╛рд▓ рдЦрдгреНрдбреАрдХрд░рдг рд╣реБрдиреНрдЫ, рд░ рдЧреНрд░рд╛рд╣рдХрд▓реЗ Redis рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдкрд░реНрдХ рдЧреБрдорд╛рдЙрдБрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рдХреБрдЮреНрдЬреА рд╕рдорд╛рдкреНрдд рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдБрджреИ рдЙрдкрд▓рдмреНрдзрддрд╛ рдЬрд░рд┐рд╡рд╛рдирд╛ рддрд┐рд░реНрдиреБрдкрд░реНрдЫ)ред

рддрд╛рд▓рд╛ рдЫреЛрдбреНрдиреБрд╣реЛрд╕реН

рд▓рдХ рд░рд┐рд▓рд┐рдЬ рдЧрд░реНрдиреБ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдкрд░реЗрд╢рди рд╣реЛ рдЬрд╕рдорд╛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдХреБрдиреИ рд╡рд┐рд╢реЗрд╖ рдЙрджрд╛рд╣рд░рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рдХ рдЧрд░реЗрдХреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреЗ рд╡рд╛ рдирдЧрд░реА рд╕рдмреИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЕрдирд▓рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ

рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реБрд░рдХреНрд╖рд┐рдд рдЫ? рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВрдорд╛ рдХреЗ рд╣реБрдиреНрдЫ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВред

рд╕реБрд░реБ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдорд╛рдиреМрдВ рдХрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреЛред рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдгрдорд╛ рд╕рдмреИрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рдЬреАрд╡рдирдХрд╛рд▓рдХреЛ рд╕рд╛рде рдПрдЙрдЯрд╛ рдХреБрдЮреНрдЬреА рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫред рдпрджреНрдпрдкрд┐, рдпреА рдкреНрд░рддреНрдпреЗрдХ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдлрд░рдХ рд╕рдордпрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рдлрд░рдХ рд╕рдордпрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫрдиреНред рддрд░, рдпрджрд┐ рдкрд╣рд┐рд▓реЛ рдХреБрдЮреНрдЬреА T1 рднрдиреНрджрд╛ рдЦрд░рд╛рдм рдирднрдПрдХреЛ рд╕рдордпрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЛ рд╕рд░реНрднрд░рд▓рд╛рдИ рд╕рдореНрдкрд░реНрдХ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЫрдиреМрдЯ рдЧрд░реЗрдХреЛ рд╕рдордп), рд░ рдЕрдиреНрддрд┐рдо рдХреБрдЮреНрдЬреА T2 рднрдиреНрджрд╛ рдЦрд░рд╛рдм рдирднрдПрдХреЛ рд╕рдордпрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рдЬрд╕рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдерд┐рдпреЛред рдЕрдиреНрддрд┐рдо рд╕рд░реНрднрд░рдмрд╛рдЯ), рддреНрдпрд╕реЛрднрдП рд╣рд╛рдореА рд╡рд┐рд╢реНрд╡рд╕реНрдд рдЫреМрдВ рдХрд┐ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗ рд╕реЗрдЯрдорд╛ рдкрд╣рд┐рд▓реЛ рдХреБрдЮреНрдЬреА рдХрдореНрддрд┐рдорд╛ рдЬреАрд╡рд┐рдд рд░рд╣рдиреЗрдЫред MIN_VALIDITY=TTL-(T2-T1)-CLOCK_DRIFTред рдЕрдиреНрдп рд╕рдмреИ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкрдЫрд┐ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рд╕рдмреИ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдХрдореНрддрд┐рдорд╛ рдпреЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХреИрд╕рд╛рде рдорд╛рдиреНрдп рд╣реБрдиреЗрдЫрдиреНред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдорд╛рдиреНрдп рд░рд╣рдиреЗ рд╕рдордпрдорд╛, рдЕрд░реНрдХреЛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреЗрдЫреИрди, рдХрд┐рдирдХрд┐ N/2+1 SET NX рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рд╕рдлрд▓ рд╣реБрди рд╕рдХреНрджреИрдирдиреН рдпрджрд┐ N/2+1 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреНред рддрд╕рд░реНрде, рдПрдХ рдкрдЯрдХ рддрд╛рд▓реНрдЪрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдпрд╕рд▓рд╛рдИ рдПрдХреИ рдХреНрд╖рдгрдорд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫ (рдпрд╕рд▓реЗ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рд╕рдореНрдкрддреНрддрд┐ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрдиреЗрдЫ)ред
рдпрджреНрдпрдкрд┐, рд╣рд╛рдореА рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рдХрд┐ рдПрдХреИ рд╕рдордпрдорд╛ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рдПрдХреИ рд╕рдордпрдорд╛ рд╕рдлрд▓ рд╣реБрди рд╕рдХреНрджреИрдирдиреНред

рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдЕрдзрд┐рдХрддрдо рд▓рдХ рдЕрд╡рдзрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╡рд╛ рдмрдвреАрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд▓рдХ рдЧрд░реЗрдХреЛ рдЫ рднрдиреЗ, рдпрд╕рд▓реЗ рд▓рдХ рдЕрд╡реИрдз рдорд╛рдиреНрдиреЗрдЫ рд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЕрдирд▓рдХ рдЧрд░реНрдиреЗрдЫред рддрд╕рд░реНрде, рд╣рд╛рдореАрд▓реЗ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдореНрдпрд╛рдж рд╕рдХрд┐рдиреЗ рдорд┐рддрд┐ рднрдиреНрджрд╛ рдХрдо рд╕рдордпрдорд╛ рдзреЗрд░реИрдЬрд╕реЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдмреНрд▓рдХ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдорд╛рддреНрд░ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрджрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдорд╛рдерд┐рдХреЛ рддрд░реНрдХрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рд╕рдордпрдорд╛ MIN_VALIDITY рдХреБрдиреИ рдкрдирд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБ рд╣реБрдБрджреИрдиред рддрд╕рд░реНрде, рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рдПрдХреИ рд╕рдордпрдорд╛ N/2+1 рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд▓рдХ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫрдиреН (рдЬреБрди рдЪрд░рдг 2 рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ) рдХреЗрд╡рд▓ рдЬрдм рдмрд╣реБрдордд рд▓рдХ рдЧрд░реНрдиреЗ рд╕рдордп TTL рд╕рдордп рднрдиреНрджрд╛ рдареВрд▓реЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рд▓рдХрд▓рд╛рдИ рдЕрдорд╛рдиреНрдп рдмрдирд╛рдЙрдБрдЫред

рдХреЗ рддрдкрд╛рдЗрдБ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рдкреНрд░рдорд╛рдг рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЕрд╡рд╕реНрдерд┐рдд рд╕рдорд╛рди рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╡рд╛ рдорд╛рдерд┐рдХреЛ рдмрдЧ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ?

рдкрд╣реБрдБрдЪ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ

рдкреНрд░рдгрд╛рд▓реА рдЙрдкрд▓рдмреНрдзрддрд╛ рддреАрди рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ:

  1. рддрд╛рд▓рд╛рд╣рд░реВ рд╕реНрд╡рддрдГ рд░рд┐рд▓рд┐рдЬ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рднрдПрдкрдЫрд┐): рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЕрдиреНрддрддрдГ рддрд╛рд▓рд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдлреЗрд░рд┐ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫрдиреНред
  2. рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрд╛рд▓рд╛рд╣рд░реВ рд╣рдЯрд╛рдПрд░ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрдЫрдиреН рдЬрдм рд╡рд╛рдВрдЫрд┐рдд рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рд╡рд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдХрд╛рдо рдкреВрд░рд╛ рднрдПрдХреЛ рдЫ; рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕рдореНрднрд╡ рдЫ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рддрд╛рд▓рд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реБрди рдкрд░реНрдЦрдиреБ рдкрд░реНрджреИрдиред
  3. рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рдЬрдм рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдпрд╕рд▓реЗ рдзреЗрд░реИ рд▓рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЕрд╡рдзрд┐ рднрдиреНрджрд╛ рддреБрд▓рдирд╛рддреНрдордХ рд░реВрдкрдорд╛ рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫред рдпрд╕рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдЧрд░реНрджрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рд╡рд┐рднрд╛рдЬрди-рдорд╕реНрддрд┐рд╖реНрдХ рдЕрд╡рд╕реНрдерд╛рдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рдХрдо рдЧрд░реНрджрдЫред

рдпрджреНрдпрдкрд┐, рддреНрдпрд╣рд╛рдБ рд╕рдЮреНрдЬрд╛рд▓ рдЦрдгреНрдбрд╣рд░реВрдХреЛ TTL рдмрд░рд╛рдмрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рджрдгреНрдб рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рд╕рдиреНрддреБрд▓рд┐рдд рдЦрдгреНрдбрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рджрдгреНрдб рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реБрди рд╕рдХреНрдЫред рдпреЛ рддрдм рд╣реБрдиреНрдЫ рдЬрдм рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рд▓рд╛рдИ рдЬрд╛рд░реА рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЕрд░реНрдХреЛ рдЦрдгреНрдбрдорд╛ рдЪреАрд░реНрдЫред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдЕрд╕реАрдорд┐рдд рд╕рдиреНрддреБрд▓рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЦрдгреНрдбрд╣рд░реВ рджрд┐рдПрд░, рдкреНрд░рдгрд╛рд▓реА рдЕрдирдиреНрдд рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдкрд▓рдмреНрдз рд░рд╣рди рд╕рдХреНрдЫред

рдкреНрд░рджрд░реНрд╢рди, рдлреЗрд▓рдУрднрд░ рд░ fsync

рдзреЗрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ Redis рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН рдХрд┐рдирднрдиреЗ рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рд▓рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд░ рдЬрд╛рд░реА рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд▓рдореНрдмрддрд╛рдХреЛ рд╕рд░реНрддрдорд╛ рдЙрдЪреНрдЪ рд▓рдХ рд╕рд░реНрднрд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЪрд╛рд╣рд┐рдиреНрдЫ, рд░ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рдЕрдзрд┐рдЧреНрд░рд╣рдг/рд░рд┐рд▓рд┐рдЬрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ред рдпреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреВрд░рд╛ рдЧрд░реНрди, рд╡рд┐рд▓рдореНрдмрддрд╛ рдХрдо рдЧрд░реНрди N Redis рд╕рд░реНрднрд░рд╣рд░реВрд╕рдБрдЧ рд╕рдЮреНрдЪрд╛рд░ рдЧрд░реНрдиреЗ рд░рдгрдиреАрддрд┐ рдЫред рдпреЛ рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдЩ рд░рдгрдиреАрддрд┐ рд╣реЛ (рд╡рд╛ "рдЧрд░реАрдм рдорд╛рдирд┐рд╕рдХреЛ рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдЩ", рдЬрд╣рд╛рдБ рд╕рдХреЗрдЯ рдирди-рдмреНрд▓рдХрд┐рдЩ рдореЛрдбрдорд╛ рд░рд╛рдЦрд┐рдиреНрдЫ, рд╕рдмреИ рдЖрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдБрдЫ, рд░ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдмреАрдЪрдХреЛ рд░рд╛рдЙрдиреНрдб-рдЯреНрд░рд┐рдк рд╕рдордп рд╕рдорд╛рди рдЫ рднрдиреА рдорд╛рдиреЗрд░ рдкрдЫрд┐ рдЖрджреЗрд╢рд╣рд░реВ рдкрдвреНрдЫ)ред ред

рдпрджреНрдпрдкрд┐, рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдлрд▓рддрд╛рд╣рд░реВрдмрд╛рдЯ рднрд░рдкрд░реНрджреЛ рд░рд┐рдХрднрд░реАрдХреЛ рд╕рд╛рде рдореЛрдбреЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрд╛ рджреАрд░реНрдШрдХрд╛рд▓реАрди рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдгрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╡рд┐рдЪрд╛рд░рд▓рд╛рдИ рдкрдирд┐ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдиреБрдкрд░реНрдЫред

рдореВрд▓рддрдпрд╛, рдореБрджреНрджрд╛ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрди, рдорд╛рдиреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рд░реЗрдбрд┐рд╕рд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рджреАрд░реНрдШрдХрд╛рд▓реАрди рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдмрд┐рдирд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдЫреМрдВред рдЧреНрд░рд╛рд╣рдХрд▓реЗ 3 рдордзреНрдпреЗ 5 рд╡рдЯрд╛ рдШрдЯрдирд╛рд╣рд░реВ рдмреНрд▓рдХ рдЧрд░реНрди рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рдмреНрд▓рдХ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдкреБрди: рд╕реБрд░реБ рднрдПрдХреЛ рдЫ, рд░ рдпрд╕ рдХреНрд╖рдгрдорд╛ рддреНрдпрд╣рд╛рдБ 3 рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЫрдиреН рдЙрд╣реА рд╕реНрд░реЛрддрдХреЛ рд▓рд╛рдЧрд┐, рдЬрд╕рд▓рд╛рдИ рд╣рд╛рдореАрд▓реЗ рдмреНрд▓рдХ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд░ рдЕрд░реНрдХреЛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ, рдкреБрди: рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдЙрджрд╛рд╣рд░рдгрд▓рд╛рдИ рдмреНрд▓рдХ рдЧрд░реНрди рд╕рдХреНрдЫ, рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореНрдкрддреНрддрд┐ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрджреИред рддрд╛рд▓рд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдорд╛рдиреНрджрдЫред

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдбреЗрдЯрд╛ рдЕрдЧрд╛рдбрд┐ (AOF) рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рд╕реНрдерд┐рддрд┐ рдереЛрд░реИ рд╕реБрдзрд╛рд░ рд╣реБрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдЗрдБ SHUTDOWN рдЖрджреЗрд╢ рдкрдард╛рдПрд░ рд░ рдпрд╕рд▓рд╛рдИ рдкреБрди: рд╕реБрд░реБ рдЧрд░реЗрд░ рд╕рд░реНрднрд░ рдкреНрд░рд╡рд░реНрджреНрдзрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред Redis рдорд╛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд┐рдореЗрдиреНрдЯрд┐рдХ рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ рд╕рд░реНрднрд░ рдмрдиреНрдж рд╣реБрдБрджрд╛ рдкрдирд┐ рд╕рдордп рдкреНрд░рд╡рд╛рд╣ рдЬрд╛рд░реА рд░рд╣рдиреНрдЫ, рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдареАрдХ рдЫрдиреНред рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рдЫ рдЬрдмрд╕рдореНрдо рдирд┐рдпрдорд┐рдд рдмрдиреНрдж рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдмрд┐рдЬреБрд▓реА рдЕрд╡рд░реБрджреНрдз рд╣реБрдБрджрд╛ рдХреЗ рдЧрд░реНрдиреЗ? рдпрджрд┐ рд░реЗрдбрд┐рд╕ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, fsync рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдХреЗрдиреНрдб рдбрд┐рд╕реНрдХрдорд╛ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрджреИ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рд╕рдореНрднрд╡ рдЫ рдХрд┐ рдкреБрди: рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рд╣рд╛рдореНрд░реЛ рдХреБрдЮреНрдЬреА рд╣реБрдБрджреИрдиред рд╕реИрджреНрдзрд╛рдиреНрддрд┐рдХ рд░реВрдкрдорд╛, рдпрджрд┐ рд╣рд╛рдореА рдХреБрдиреИ рдкрдирд┐ рдЙрджрд╛рд╣рд░рдг рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрджрд╛ рд▓рдХ рд╕реБрд░рдХреНрд╖рд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ, рд╣рд╛рдореАрд▓реЗ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ fsync=always рджреАрд░реНрдШрдХрд╛рд▓реАрди рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛ред рдпрд╕рд▓реЗ рдкрд╛рд░рдореНрдкрд░рд┐рдХ рд░реВрдкрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рд╡рд┐рддрд░рд┐рдд рд▓рдХрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ CP рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд╕реНрддрд░рд╕рдореНрдо, рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреНрд░рджрд░реНрд╢рдирд▓рд╛рдИ рдирд╖реНрдЯ рдЧрд░реНрдиреЗрдЫред

рддрд░ рдЕрд╡рд╕реНрдерд╛ рдкрд╣рд┐рд▓реЛ рдирдЬрд░рдорд╛ рджреЗрдЦрд┐рдиреЗ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдЫред рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдПрд▓реНрдЧреЛрд░рд┐рджрдордХреЛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐рдирднрдиреЗ рдЕрд╕рдлрд▓рддрд╛ рдкрдЫрд┐ рдЙрджрд╛рд╣рд░рдг рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрджрд╛, рдпрд╕рд▓реЗ рд╣рд╛рд▓ рд╕рдХреНрд░рд┐рдп рднрдПрдХреЛ рдХреБрдиреИ рдкрдирд┐ рд▓рдХрдорд╛ рднрд╛рдЧ рд▓рд┐рдЗрд░рд╣реЗрдХреЛ рдЫреИрдиред

рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдХреЗрд╡рд▓ рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдЕрд╕рдлрд▓рддрд╛ рдкрдЫрд┐ рдЙрджрд╛рд╣рд░рдг рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрддрдо TTL рднрдиреНрджрд╛ рдереЛрд░реИ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдкрд▓рдмреНрдз рд░рд╣рдиреНрдЫред рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рд╣рд╛рдореА рд╕рдорд╛рдкреНрддрд┐ рдорд┐рддрд┐ рд╕рдореНрдо рдкрд░реНрдЦрдиреЗрдЫреМрдВ рд░ рд╡рд┐рдлрд▓рддрд╛рдХреЛ рд╕рдордпрдорд╛ рд╕рдХреНрд░рд┐рдп рднрдПрдХрд╛ рд╕рдмреИ рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рд┐рд▓реАрдЬ рд╕рдореНрдоред

рдврд┐рд▓реЛ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, Redis рдорд╛ рдХреБрдиреИ рдкрдирд┐ рджреАрд░реНрдШрдХрд╛рд▓реАрди рдирд┐рд░рдиреНрддрд░рддрд╛рдХреЛ рдЕрднрд╛рд╡рдорд╛ рдкрдирд┐ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрдерд╛рдкрд┐, рдпрд╕рд▓реЗ рдкрд╣реБрдБрдЪрдХреЛ рдЙрд▓реНрд▓рдЩреНрдШрдирдХреЛ рд▓рд╛рдЧрд┐ рдЬрд░рд┐рд╡рд╛рдирд╛ рд╣реБрди рд╕рдХреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рдзреЗрд░реИрдЬрд╕реЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЕрд╕рдлрд▓ рднрдПрдорд╛, рдкреНрд░рдгрд╛рд▓реА TTL рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд░реВрдкрдорд╛ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫ (рд░ рдпрд╕ рд╕рдордпрдорд╛ рдХреБрдиреИ рдкрдирд┐ рд╕реНрд░реЛрдд рдЕрд╡рд░реБрджреНрдз рд╣реБрди рд╕рдХреНрджреИрди)ред

рд╣рд╛рдореА рдПрд▓реНрдЧреЛрд░рд┐рджрдордХреЛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдмрдврд╛рдЙрдБрдЫреМрдВ: рд╣рд╛рдореА рдЕрд╡рд░реБрджреНрдз рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдЫреМрдВ

рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХреЛ рдХрд╛рдордорд╛ рд╕рд╛рдирд╛ рдЪрд░рдгрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдХ рдЕрд╡рдзрд┐ рдШрдЯрд╛рдЙрди рд░ рд▓рдХрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рдВрдпрдиреНрддреНрд░ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпрджрд┐ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩрдорд╛ рд╡реНрдпрд╕реНрдд рдЫ рд░ рд▓рдХрдХреЛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗ рдорд╛рди рдЦрддрд░рдирд╛рдХ рд░реВрдкрдорд╛ рдХрдо рдЫ рднрдиреЗ, рддрдкрд╛рдИрд▓реЗ рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдард╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕рд▓реЗ рдХреБрдЮреНрдЬреАрдХреЛ TTL рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ рдпрджрд┐ рдХреБрдЮреНрдЬреА рдЕрдЭреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд░ рдпрд╕рдХреЛ рдорд╛рди рдЕрдЭреИ рдкрдирд┐ рдЕрдирд┐рдпрдорд┐рдд рдорд╛рди рд╣реЛ рдЬрдм рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫред рддрд╛рд▓рд╛ рдХрдмреНрдЬрд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рднрд┐рддреНрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд▓рдХ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдХреЛ рдЫ рднрдиреЗ рдорд╛рддреНрд░ рд▓рдХ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рд╕рд╛рдБрдЪреЛ, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрди, рддреНрдпрд╕реИрд▓реЗ рддрд╛рд▓рд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рдкреНрд░рдпрд╛рд╕рд╣рд░реВрдХреЛ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рд╣реБрдиреБрдкрд░реНрдЫ, рдЕрдиреНрдпрдерд╛ рдкрд╣реБрдБрдЪ рдЧреБрдгрд╣рд░реВ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░рд┐рдиреЗрдЫред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди