Redis рдкреВрд░реА рддрд░рд╣ рд╕реЗ RAM рдореЗрдВ рд░рдЦрд╛ NoSQL рд╡рд░реНрдЧ (рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS) рдХрд╛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, "рдХреБрдВрдЬреА" - "рдореВрд▓реНрдп" рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рдЕрдХреНрд╕рд░ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдЫреЛрдЯреЗ рдбреЗрдЯрд╛ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдХреИрд╢ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Redis DBMS рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдЙрдЪреНрдЪ рдЧрддрд┐, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ;
- рдкрд╛рд░ рдордВрдЪ;
- рдмреАрдПрд╕рдбреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рдг (рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ)ред
рд░реЗрдбрд┐рд╕ рдХреЗ рд╡рд┐рддрд░рдг рдФрд░ рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдЕрдиреБрдорд╛рди
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк DirectumRX рд╕реЗрд╡рд╛рдУрдВ рдХреА рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ DirectumRX рд╕рдВрдЧреНрд░рд╣рдг рд╕реЗрд╡рд╛ рдФрд░ DirectumRX рд╡реЗрдм рдПрдХреНрд╕реЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Redis рдЕрд╕рдлрд▓-рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд░реЗрдбрд┐рд╕ рдкрд░рд┐рдЪрд╛рд▓рди рдбреЗрдЯрд╛, рдХреИрд╢ рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ рдЬреЛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдореЛрдб рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдВрдкрд░реНрдХ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрд╕ рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рди рд╣реЛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд░реЗрдбрд┐рд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рднрд╛рд░реА рднрд╛рд░ рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди Redis рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛрдЧрд╛ред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реЗрдбрд┐рд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ:
- Redis Sentiel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
- Redis Cluster рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
Redis Sentiel рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
Redis Sentiel (Redis Tracking Node) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк Redis 2.4 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд Redis Sentiel рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╡рд╣ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ рдиреЛрдбреНрд╕ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рднреА рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ SLAVE рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рдорд╛рд╕реНрдЯрд░ рдмрдиреЗрдЧрд╛ рдФрд░ рдЪрд▓рддреЗ-рдлрд┐рд░рддреЗ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдЧрд╛ред
рдХреНрд▓рд╛рд╕рд┐рдХ рдпреЛрдЬрдирд╛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:

рдХрдИ SLAVE рдиреЛрдбреНрд╕ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 1000 рддрдХ) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрддреНрдкрд╛рджрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ SLAVE рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдЖрдорддреМрд░ рдкрд░, рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ Redis Sentiel рд╕реЗрд╡рд╛ рдХреЛ MASTER рдФрд░ SLAVE рдиреЛрдб рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ MASTER рдиреЛрдб рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рд╢реЗрд╖ рдирд┐рдЧрд░рд╛рдиреА рдиреЛрдб рдПрдХ рдирдпрд╛ MASTER рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред
Redis рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг
рдЙрддреНрдкрд╛рдж рдбреЗрд╡рд▓рдкрд░ рдХреА
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз
рд╣реИ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд┐рддрд░рдг рд╕рд╛рдЗрдЯ рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдПрдХ рд╕рдордп рдореЗрдВ, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ
рдХреА Microsoft
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рд╕рдВрд╕реНрдХрд░рдг 3.2.100 рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рддреИрдирд╛рддреА рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдкрд░реАрдХреНрд╖рдг рдиреЛрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдбреЗрдмрд┐рдпрди 10 рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рджреЛ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯреНрд╕ redis1 рдФрд░ redis2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреИрдХреЗрдЬ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ Redis рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
apt-get update && apt-get upgrade apt install redis-server
рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
root@redis1:/home/user
Redis1 рдХреЛ MASTER рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ redis2 рдПрдХ SLAVE рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░реЗрдбрд┐рд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ (рдЕрднреА рддрдХ рдЧрд▓рддреА-рд╕рд╣рд┐рд╖реНрдгреБ рдирд╣реАрдВ)ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /etc/redis/redis.conf рдореЗрдВ redis1 рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /etc/redis/redis.conf рдореЗрдВ redis2 рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
рджреЛрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ рд░реЗрдбрд┐рд╕-рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
root@redis1:/etc/redis
рд╣рдо рдорд╛рд╕реНрдЯрд░ рдХреА рддрд░рдл рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдбреНрд╕ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдмрди рдЧрдИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рднреВрдорд┐рдХрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХреАрдВ:
root@redis1:/etc/redis
SLAVE рдХреА рдУрд░, рд╣рдо рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ:
root@redis2:/etc/redis
рдЕрдм рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрд╣рд╛рд▓ рд╣реЛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Redis Sentinel рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, Redis Sentinel рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХрддреА рд╣реИ:
- MASTER рдФрд░ SLAVE рдиреЛрдбреНрд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдиреЛрдбреНрд╕ рдХреА рджреБрд░реНрдЧрдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
- рдпрджрд┐ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдХреНрд╖реА рдиреЛрдб SLAVE рдиреЛрдб рдХреЛ рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╢реЗрд╖ SL рдиреЛрдб рдиреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдирдП рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
- MASTER рдФрд░ SLAVE рдиреЛрдбреНрд╕ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдХреНрд╖реА рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд░реЗрдбрд┐рд╕ 3 рд╡реАрдПрдо рдкрд░ рд░рдЦреЗрдВрдЧреЗред
рд╣рдо рдЙрд╕реА рддрд░рд╣ рд╕реЗ Redis рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ Redis-sentinel рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
apt install redis-sentinel
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдиреЛрдб /etc/redis/sentinel.conline рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
root@redis3:/etc/redis
рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдиреЗ рдорд╛рд╕реНрдЯрд░ рдФрд░ рд╕реНрд▓реЗрд╡ рдХреЛ рджреЗрдЦрд╛:
root@redis3:/etc/redis
рд╣рдо рдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ, redis1 рдиреЛрдб рдкрд░ рд░реЗрдбрд┐рд╕-рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрд╡рд╛рд╣ рдиреЛрдб рдХреА рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
root@redis3:/etc/redis
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рд╣рдо redis1 рдиреЛрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ:
root@redis3:/var/log/redis
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдб рдХреЛ SLAVE рднреВрдорд┐рдХрд╛ рдорд┐рд▓реА рд╣реИ, рдФрд░ redis2 рдиреЛрдб рдПрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╣реИред
Redis2 рдиреЛрдб рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ рдФрд░ рдЧрд╡рд╛рд╣ рдиреЛрдб рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ:
root@redis3:/var/log/redis
рдФрд░ рд░реЗрдбрд┐рд╕ 1 рдиреЛрдб рдХреА рд╕реНрдерд┐рддрд┐:
root@redis3:/var/log/redis
рдорд╣рд╛рди, рддрдВрддреНрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдардиреЗ рд▓рдЧрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреА DirectumRX рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдХреИрд╕реЗ рдЬреБрдбрд╝реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдиреЛрдб рдкрддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо HAProxy рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗред
рд░реЗрдбрд┐рд╕ рдиреЛрдб рдкреНрд░реЙрдХреНрд╕рд╛рдЗрдбрд┐рдВрдЧ
рдХреЛрдИ рднреА рдкреНрд░реЙрдХреНрд╕реА tcp рд╕реЗрд╡рд╛ Redis рдиреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо HAProxy рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрд╡рд▓рдкрд░ рдкреЗрдЬ рдкрд░ HAProxy рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
Redis3 рдиреЛрдб рдкрд░ HAProxy рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
root@redis3:/var/log/redis
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /etc/haproxy/haproxy.cfg рдореЗрдВ, Redis рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ:
тАж frontend ft_redis bind *:6379 name redis mode tcp default_backend bk_redis backend bk_redis mode tcp option tcp-check tcp-check connect
рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреЛрд░реНрдЯ 6379 рдкрд░ рдкрддреЗ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдиреЛрдб рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдХреА рднреВрдорд┐рдХрд╛ рд╣реИред
Hproxy рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
root@redis3:/etc/haproxy
рдЖрдЗрдП redis-cli рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
root@redis3:/etc/haproxy
Redis1 рдиреЛрдб рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдХреНрд╡реЗрд░реА рдлрд┐рд░ рд╕реЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА:
127.0.0.1:6379> info keyspace Error: Server closed the connection (3.01s) 127.0.0.1:6379> info keyspace
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдХрдиреЗрдХреНрд╢рди рдлрд┐рд░ рд╕реЗ рдмрд╣рд╛рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╕рднреА рдбреЗрдЯрд╛ рдЬрдЧрд╣ рдкрд░ рд░рд╣реЗред
рдЕрдм Redis рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DirectumRX рд╕реЗрд╡рд╛рдУрдВ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдкрддреЗ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
Redis рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд┐рдХрд▓реНрдк, рд╕рдВрд╕реНрдХрд░рдг redis 3.0 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдбреЗрдЯрд╛ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред рдиреЛрдб рдкреНрд░рдмрдВрдзрди, рдкреНрд░рддрд┐рдХреГрддрд┐, рдиреЛрдбреНрд╕ рдкрд░ рдбреЗрдЯрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдХрдИ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рддрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкрд╣реБрдВрдЪ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдорд▓реНрдЯреАрдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ SLAVE рдиреЛрдбреНрд╕ (1000 рддрдХ) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд▓рд╕реНрдЯрд░ рд░реЗрдбрд┐рд╕ рд╕реЗрд╡рд╛ рдХреА рдЧрд▓рддреА рд╕рд╣рдирд╢реАрд▓рддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддрд╛ рд╣реИ:
- рдпрджрд┐ рдХреБрдЫ рдиреЛрдбреНрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╕реНрдЯрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд▓реЛрдб рдХреЛ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдореЗрдВ рдкреБрдирд░реНрд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ;
- рдпрджрд┐ рдХреБрдВрдЬреА рдиреЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрд▓рд╛рдЗрдВрдЯ 2 рдХреЛ M2 рдкрд░ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдо 2 "рдУрдХреЗ" рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ рдФрд░ рдПрд╕ 2 рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдПрдо 2 рдПрд╕ 2 рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд╕рд╣реА рд╕рдорд╛рдкрди рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреНрд░рд╛рд╣рдХ рдХреЛ рддреБрд░рдВрдд рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, S2 рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрдИ SLAVE рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдЬрдм рдПрдо 1, рдПрдо 3 "рдПрдо 2" рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрднреА рднреА рдПрдо 2 рдХреЛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрдкрд▓рдмреНрдзрддрд╛ рдХреБрдЫ рд╕рдордп (рдХреНрд▓рд╕реНрдЯрд░-рдиреЛрдб-рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рд░рд╣реЗрдЧреА, рддреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ S2 рдХреЛ рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ M2 рдЕрдкрдиреЗ рдЖрдк рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ 6 рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИ - рдкреНрд░рддрд┐ рдиреЛрдб рдПрдХ рд░реЗрдбрд┐рд╕ рдЙрджрд╛рд╣рд░рдг, рдЬреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ
рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдореНрди рдХрдиреЗрдХреНрд╢рди рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рд╕рд╛рде рддреАрди рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

рдпрджрд┐ рдХреЛрдИ рднреМрддрд┐рдХ рдиреЛрдб рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд SLAVE рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдЪрд▓реА рдЬрд╛рдПрдВрдЧреА, рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╣рдо рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ 3 рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ (redis1, redis2 рдФрд░ redis3) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ 2 Red Hat рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП, рдорд╛рд╕реНрдЯрд░ - SLAVE рдЬреЛрдбрд╝реЗ рдХреЛ рд╕рдорд╛рди рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреЛрдбрд╝реА M1 - S1 рдХреЗ рд▓рд┐рдП рд╣рдо рдкреЛрд░реНрдЯ 6381 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдЬреЛрдбрд╝реА рдПрдо 2 - рдПрд╕ 2 рдХреЗ рд▓рд┐рдП рд╣рдо рдкреЛрд░реНрдЯ 6382 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдЬреЛрдбрд╝реА рдПрдо 3 - рдПрд╕ 3 рдХреЗ рд▓рд┐рдП рд╣рдо рдкреЛрд░реНрдЯ 6383 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ
Redis1 рдкрд░:
cp /etc/redis/redis.conf /etc/redis/m1_redis.conf cp /etc/redis/redis.conf /etc/redis/s2_redis.conf mv /etc/redis/redis.conf /etc/redis/redis.bak
Redis2 рдкрд░:
cp /etc/redis/redis.conf /etc/redis/m2_redis.conf cp /etc/redis/redis.conf /etc/redis/s3_redis.conf mv /etc/redis/redis.conf /etc/redis/redis.bak
Redis3 рдкрд░:
cp /etc/redis/redis.conf /etc/redis/m3_redis.conf cp /etc/redis/redis.conf /etc/redis/s1_redis.conf mv /etc/redis/redis.conf /etc/redis/redis.bak
рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рднрд░реЗрдВ:
bind <IP- > protected-mode no
рдЪрд▓реЛ рд░реЗрдбрд┐рд╕ рдиреЛрдбреНрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:
рдиреЛрдб рд░реЗрдбрд┐рд╕ 1:
root@redis1:/etc/redis
Redis2 рдиреЛрдб:
root@redis2:/etc/redis
рд░реЗрдбрд┐рд╕ 3 рдиреЛрдб:
root@redis3:/etc/redis
рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░реЗрдбрд┐рд╕-рдХреНрд▓реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЖрдИрдкреА рдХреА рд╕реВрдЪреА рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛: рд╕рд░реНрд╡рд░ рдХреЗ рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗ рдЬреЛ рдорд╛рд╕реНрдЯрд░ рдФрд░ рд╕реНрд▓реЗрд╡ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдПрдВрдЧреЗ:
redis-cli --cluster create redis1-ip:6381 redis2-ip:6382 redis3-ip:6383 redis1-ip:6382 redis2-ip:6383 redis3-ip:6381 --cluster-replicas 1
, рдЬрд╣рд╛рдВ - thecluster-replicas 1 рд╡рд┐рдХрд▓реНрдк рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкрд╛рд╕ рдХрд┐рддрдиреЗ SLAVE рд╣реЛрдВрдЧреЗ, рдФрд░ рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдЪреБрдиреЗ рдЬрд╛рдПрдВрдЧреЗред
root@redis1:~/redis/src
рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ:
root@redis1:~/redis/src
рд░реЗрдбреАрд╕ рд╕реЗрдВрдЯрд┐рдпрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк INFO рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
root@redis1:~/redis/src
рдЖрдЗрдП рдХрдИ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпреЗ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ:
192.168.9.51:6381> SET key1 test1 -> Redirected to slot [9189] located at 192.168.9.52:6382 OK 192.168.9.52:6382> SET key2 test2 -> Redirected to slot [4998] located at 192.168.9.51:6381 OK 192.168.9.51:6381> SET key3 test3 OK 192.168.9.51:6381>
M2 рдкрд░ рдЬрд╛рдВрдЪреЗрдВ:
root@redis2:/home/user
рдФрд░ рдПрдо 3 рдкрд░:
root@redis3:/home/user
рд╣рдо redis1 рдиреЛрдб рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЬрд╛рдБрдЪреЗрдВрдЧреЗ рдХрд┐ S1 рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
192.168.9.52:6382> CLUSTER NODES <b>182e5cffc9c31c231de69ddbaf507ec1fe17bb09 192.168.9.51:6382@16382 slave,fail d499af3672b3063c7239572ec311ad3160f280ae 1569509904727 1569509900000 4 connected</b> 485ffb786e9763955e6f10ffc59247690ad9bc11 <i>192.168.9.53:6381@16381 master</i> - 0 1569510017272 7 connected 0-5460 44f656062259005adea58bc5ad024071a050e192 192.168.9.52:6383@16383 slave 3a41475e1613519c3ecdec695736a898262a24a5 0 1569510018274 5 connected <b>e92cb96fd6c20db7509662a248902e3751ebe95f 192.168.9.51:6381@16381 master,fail - 1569509906731 1569509901721 1 connected</b> 3a41475e1613519c3ecdec695736a898262a24a5 192.168.9.53:6383@16383 master - 0 1569510019275 3 connected 10923-16383 d499af3672b3063c7239572ec311ad3160f280ae 192.168.9.52:6382@16382 myself,master - 0 1569510017000 2 connected 5461-10922
рд╣рдо рдПрдо 1 рдФрд░ рдПрд╕ 2 рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдПрд╕ 3 рдиреЗ рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреБрдВрдЬрд┐рдпрд╛рдВ рдХрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ:
192.168.9.52:6382> GET key1 "test1" 192.168.9.52:6382> GET key2 -> Redirected to slot [4998] located at 192.168.9.53:6381 "test2" 192.168.9.53:6381> GET key3 "test3" 192.168.9.53:6381>
рдХреБрдВрдЬреА рдЬреЛ рдкрд╣рд▓реЗ redis1 рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЧрдИ рдереАрдВ, рдЕрдм redis3 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
Redis1 рдиреЛрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдиреЛрдбреНрд╕ M1 рдФрд░ S2 рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
192.168.9.53:6381> CLUSTER NODES <i>e92cb96fd6c20db7509662a248902e3751ebe95f 192.168.9.51:6381@16381 slave 485ffb786e9763955e6f10ffc59247690ad9bc11 0 1569511658217 7 connected 182e5cffc9c31c231de69ddbaf507ec1fe17bb09 192.168.9.51:6382@16382 slave d499af3672b3063c7239572ec311ad3160f280ae 0 1569511657000 4 connected</i> d499af3672b3063c7239572ec311ad3160f280ae 192.168.9.52:6382@16382 master - 0 1569511656000 2 connected 5461-10922 3a41475e1613519c3ecdec695736a898262a24a5 192.168.9.53:6383@16383 master - 0 1569511656000 3 connected 10923-16383 485ffb786e9763955e6f10ffc59247690ad9bc11 192.168.9.53:6381@16381 myself,master - 0 1569511656000 7 connected 0-5460 44f656062259005adea58bc5ad024071a050e192 192.168.9.52:6383@16383 slave 3a41475e1613519c3ecdec695736a898262a24a5 0 1569511657216 5 connected
M1 рдФрд░ S2 рдХрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм M1 SLAVE рдореЛрдб рдореЗрдВ рд╣реИред
рдФрд░ рдЪрд╛рдмреА рднреА redis3 рдиреЛрдб рдкрд░ рд╣реИрдВ:
192.168.9.53:6383> GET key1 -> Redirected to slot [9189] located at 192.168.9.52:6382 "test1" 192.168.9.52:6382> GET key2 -> Redirected to slot [4998] located at 192.168.9.53:6381 "test2" 192.168.9.53:6383> GET key3 -> Redirected to slot [935] located at 192.168.9.53:6381 "test3"
рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ Redis рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
DirectumRX рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реАрдЬрд╝ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ рд░реЗрдбрд┐рд╕ рд╕реЗрдВрдЯреАрдПрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдЗрд╕ рд▓реЗрдЦ рдиреЗ рд░реЗрдбрд┐рд╕ рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд╛рдирд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдкреЗрд╕рдореЗрдХрд░ рдПрдХ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЛ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрд╛рддрдХрд╛рд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреА рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, HAProxy) рдХреЗ рд▓рд┐рдП, рдпрд╣ рднреА рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рднреА рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рдерд╛ред рдпрджрд┐ рдЖрдк рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЯреНрдпреВрдирд┐рдВрдЧ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ:
рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд░реЗрдбрд┐рд╕ рд╕реЗрдВрдЯрд┐рдирд▓ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рдиHAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореИрдиреБрдЕрд▓ ред