рдЧреЛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХреИрд╢ рд╕рд┐рдВрдХ


рдкрд░рд┐рдЪрдп


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


рд╕рдм рдХреБрдЫ рдХреИрд╕рд╛ рдерд╛?


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд╕реНрддреБ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП, PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ (DB) рдореЗрдВ рдПрдХ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЧрдИ рдереАред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдХрдИ рдкреНрд░рд╢реНрди, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреВрд░реНрдг рдЙрддреНрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕рд░ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдореГрддрд┐ рдореЗрдВ, рдпрд╣ рд╡рд╕реНрддреБ рд▓рдЧрднрдЧ 250 kB рд╣реЛрддреА рд╣реИред


рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдорд╣рд╛рди рдирд╣реАрдВ рдерд╛, 1000 рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рд╡рд╛рд▓реЗ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп 3500 рдЖрд░рдкреАрдПрд╕ (рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдз) рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред


рдкреНрд░рд╢реНрди рддреБрд░рдВрдд рдЙрдард╛, рд▓реЗрдХрд┐рди рдЖрд░рдкреАрдПрд╕ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП: рд░рд╛рдЙрдЯрд░ рдХреЛ рдмрджрд▓реЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕, рдХреИрд╢ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВ? рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ( github.com/julienschmidt/httprouter ), рдФрд░ рд░рд╛рдЙрдЯрд░ рдХреЛ рдПрдХ рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдЗрд╕рдХреЗ рдЯреВрдЯрдиреЗ рдХрд╛ рдПрдХ рдЙрдЪреНрдЪ рдЬреЛрдЦрд┐рдо рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрдб рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ (рдЕрдм github.com/jmoiron/sqlx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЖрд░рдкреАрдПрд╕ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧ рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рддрд░реАрдХрд╛ рд╣реИред


рд╕рд░рд▓ рдЙрдкрд╛рдп


рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧред рдРрд╕реЗ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд▓рдЧрднрдЧ 20,000 рдЖрд░рдкреАрдПрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдкреНрд░рджрд░реНрд╢рди рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрдИ рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХрднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕реЗрд╡рд╛ рдХрд╛ рдХреМрди рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЙрдбрд╝рд╛рди рднрд░реЗрдЧрд╛, рдФрд░ рди рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рд╣рдЯрд╛рдиреЗ / рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреБрд░реЛрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреА рдЦреЛрдЬ рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рд╡рд┐рдЪрд╛рд░, рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░


рдХреНрдпрд╛ рдпрд╣ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ NoSQL Redis рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИ? рдпрд╣ рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╕реЗрд╡рд╛ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЬрд▓реНрджреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдкрд░реАрдХреНрд╖рдг рджрд┐рдЦрд╛рдпрд╛ ... рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдзрд┐рдХ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реБрдИред
рдЖрдЧреЗ рдХреЗ рд╢реЛрдз рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЦреНрдп рдкреНрд░рджрд░реНрд╢рди рдиреБрдХрд╕рд╛рди рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ рдФрд░ рдЕрдирдорд░рд╢рд▓рд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред JSON рдореЗрдВ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред Marshaling / unmarshaling рдХреЛ рдордирд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХреИрд╢ рд╕реЗ рдПрдХ рдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝реАрд▓реНрдб рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ / рдЕрдирдорд░рд╢рд▓рд┐рдВрдЧ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рднреА рдмрдЪрдд рдирд╣реАрдВ рд╣реБрдИ, рд╡рд┐рдХрд╛рд╕ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдмрд╣реБрдд рджреВрд░ рдерд╛ред рдЗрд╕рд▓рд┐рдП, "рд╣реЗрдЬрд╣реЙрдЧ рдФрд░ рд╕реНрдиреЗрдХ" рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдФрд░ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХреИрд╢ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рд╣рд╛рдЗрдмреНрд░рд┐рдб "рд╕рд╛рдВрдк рдФрд░ рд╣рд╛рдереА"


рдЖрдк рдЗрд╕реЗ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рд╣рд╛рдЗрдмреНрд░рд┐рдб рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ (рджреЗрдЦреЗрдВред рдЕрдВрдЬреАрд░ред), рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рд░реЗрдбрд┐рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд╕рд╛рде (рдкреБрд╕реНрддрдХрд╛рд▓рдп github.com/go-redis/redis рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ )ред рдбреЗрдЯрд╛рдмреЗрд╕ (ID рдСрдмреНрдЬреЗрдХреНрдЯ) рд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдХреЗрд╡рд▓ рдЕрдирдиреНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ Redis рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдореМрдЬреВрджрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди рд░реЗрдбрд┐рд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рд░реЗрдбрд┐рд╕ рдореЗрдВ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдореВрд▓реНрдп рдЙрддреНрдкрдиреНрди рдпреВрдпреВрдЖрдИрдбреА (рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рд╣реЛрдЧрд╛ред рдпреВрдпреВрдЖрдИрдбреА рддрднреА рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░реЗрдбрд┐рд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ UUID рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдмрд╛рдж рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



Redis рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╢ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ


рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдХреЛ Sync.ap рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХреИрд╢ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП, рдЯреАрдЯреАрдПрд▓ (рдЬреАрд╡рдирдпрд╛рдкрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд░реЗрдбрд┐рд╕ "рдмреЗрдИрдорд╛рдиреА" рдЖрдЗрдЯрдо рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдХреЛ рдЯрд╛рдЗрдорд░ (time.AfterFunc) рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╢ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рддрддреНрд╡ "рд╕рдбрд╝рд╛ рд╣реБрдЖ" рд╣реИред рдпрджрд┐ рдХреЛрдИ рдХреИрд╢ рддрддреНрд╡ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; Redis рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рддреЛ, рдЕрдм рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рдпрджрд┐ рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  1. рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ Redis рдореЗрдВ рдХрд┐рд╕реА рдЖрдИрдбреА-рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрди-рдореЗрдореЛрд░реА рд╕реЗ рд╕рд░реНрд╡рд┐рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреИрд╢ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:
    1. рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╢ рдХреЛ UUID рд╕реЗ Redis рд╕реЗ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ Redis рдореЗрдВ рдХреБрдВрдЬреА рдХрд╛ TTL рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
    2. рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдореЗрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдХреИрд╢ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреИрд╢ рдореЗрдВ рдФрд░ UUID рд░реЗрдбрд┐рд╕ рдореИрдЪ рдореЗрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ TTL рдХреЛ рдХреИрд╢ рдореЗрдВ рдФрд░ рд░реЗрдбрд┐рд╕ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдпреВрдпреВрдЖрдИрдбреА рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓реЗрдВ, рдпреВрдЖрдИрдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХреИрд╢ рдХреЛ рд░реЗрдбрд┐рд╕ рд╕реЗ рдЗрди-рдореЗрдореЛрд░реА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
  2. рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ Redis рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╢ рдореЗрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреИрд╢ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╢ рдФрд░ рд░реЗрдбрд┐рд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдХрд┐рд╕реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ / рдбрд┐рд▓реАрдЯ рдХрд░рддреЗ рд╕рдордп рд╕реНрдерд┐рддрд┐ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ ( andververbin рдЯрд┐рдкреНрдкрдгреА ) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ, рдХреИрд╢ рдореЗрдВ рд╢реВрдиреНрдп UUID рдХреЗ рд╕рд╛рде рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░, рдХреИрд╢ рддрдХ рдкрд╣рд▓реА рдкрд╣реБрдВрдЪ рдореЗрдВ, рд░реЗрдбрд┐рд╕ рдХреЗ рд╕рд╛рде рдпреВрдпреВрдЖрдИрдбреА рдореЗрдВ рдЕрдВрддрд░ рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рддреБрд░рдВрдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХреИрд╢ рдСрдкрд░реЗрд╢рди:


  1. Redis рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛рдПрдВред
  2. рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛рдПрдВред

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


рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╕реНрддреБ рдЕрджреНрдпрддрди,


  1. Redis рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛рдПрдВред
  2. рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛рдПрдВред

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


рдпрд╛рдиреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд┐рд╕реА рднреА рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХреИрд╢ рдЧрд▓рдд рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


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


рд╡рд┐рдХрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рджреЛрдиреЛрдВ рд╣реИрдВред


рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ


  • рд╡рд┐рдХрд╕рд┐рдд рдХреИрд╢рд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдиреЗ рд▓рдЧрднрдЧ 19000 рдЖрд░рдкреАрдПрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛, рдЬреЛ рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реИред
  • рдореВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВред

рд╡рд┐рдкрдХреНрд╖


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

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

Source: https://habr.com/ru/post/hi482704/


All Articles