Go-cache: рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз: рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдФрд░/рдпрд╛ рдЕрдзрд┐рдХрддрдо рдСрдмреНрдЬреЗрдХреНрдЯ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдирд╡ре░ 2012  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: patrickmn/go-cache

рдЧреЛ-рдХреИрд╢ рдХреЛ рдореЗрдордХреИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдкрд░ рдКрдкрд░реА рд╕реАрдорд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡рд╣ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЕрдиреНрдпрдерд╛ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рдФрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

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

рдЕрдзрд┐рдХрддрдо рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛ рднреА рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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

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

рд╕рднреА 11 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ рдХрд╛рдлреА рдХрдард┐рди рд╣реЛрдЧрд╛ред рдЧреЛ-рдХреИрд╢, memcached рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд/рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рд╣рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЬрдмрдХрд┐ рдпрд╣ рдкрд░рд┐рдорд╛рдг рдХреЗ рдЧреЛ-рдХреИрд╢ рдСрд░реНрдбрд░ рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ memcached рд╣реИ), рдФрд░, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЙрд╕ рдЖрдХрд╛рд░ рдХреЛ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЧрдВрднреАрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд/рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЬрд╛рджреВ/рдУрд╡рд░рд╣реЗрдбред

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╢рд╛рдпрдж рдПрдХ рдирдпрд╛ рдХреИрд╢ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЖрдХрд╛рд░ рдпреЛрдЧреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ foo.Size() рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдХрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд┐рдЯреЗрд╕ рдХрд╛ рдПрд▓рдЖрд░рдпреВ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ: https://code.google.com/p/vitess/source/browse/go/cache/lru_cache.go рдпрд╣ рдЙрд╕ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛рдиреА рдЬрдм рд╡реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕реЗ [] рдмрд╛рдЗрдЯ рдлрд╝реАрд▓реНрдб рдпрд╛ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд░рдЪрдирд╛, рдЬреИрд╕реЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдпрд╛ рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рдирдХреНрд╢рд╛ред

рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдХрд┐рд╕реА рднреА рд╕рдордп рдХреИрд╢ рдореЗрдВ рдЖрдЗрдЯрдореНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреИрд╢ рдЖрдЗрдЯрдо рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХреИрд╢ рд╕рдВрднрд╡рддрдГ рдПрд▓рдЖрд░рдпреВ рдХрд╛ рдХреНрд▓реЛрди рдмрди рдЬрд╛рдПрдЧрд╛ (рдЕрд░реНрдерд╛рдд рдпрд╣ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдЗрдЯрдо рдХреЛ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдХрдм рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛/рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1.

рдореИрдВ рдЧреЛ-рдХреИрд╢ рдореЗрдВ рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд░рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реА рдЖрдВрдд рдЕрднреА рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣реА рд╣реИ:

  • рдпрджрд┐ рдЖрдк рд╕реНрдореГрддрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рд╕рдорд╛рдкреНрддрд┐ рдЕрд╡рдзрд┐ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?
  • рдпрджрд┐ рд╕рдорд╛рдкреНрддрд┐ рдЕрд╡рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдо рд╣реИ, рдФрд░ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдЕрднреА рднреА рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдХрдИ рдлреНрд░рдВрдЯрдПрдВрдб/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реНрд░рдВрдЯрдПрдВрдб рд╣реИрдВ? рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╢рд╛рдпрдж рд╕рдорд░реНрдкрд┐рдд memcached рдмрдХреНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛? рдпрд╣рд╛рдВ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЖрдЗрдЯрдо рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмрдбрд╝реЗ рдХреИрд╢ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдЖрдЗрдЯрдо рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдХрдИ рдлреНрд░рдВрдЯрдПрдВрдб рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред

рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рдФрд░ рд╡рд┐рдЯреЗрд╕ рдХреИрд╢ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВ рднреЛрд▓реЗрдкрди рд╕реЗ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд╡рд╕реНрддреБрдПрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдХреИрд╢ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Sizeable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдЖрдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк 24 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдПрдХ рдмреЙрдЯ-рдиреЗрдЯ рдХреЗ рдЧрд▓рдд рдЫреЛрд░ рдкрд░ рдкрд╣реБрдБрдЪ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдмрд╣реБрдд рдХрдо рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рддреНрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреНрд▓рд╢рд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд░реНрд╡рд░ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦреЗрдЧрд╛ред

Memcached рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ go-cache рд╕рд╛рде рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред

рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рднреА рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреБрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

рд╡рд┐рд▓рдВрдм рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЕрд░реНрдерд╛рддреН рд╡рд┐рдЯреЗрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдмреЗрджрдЦрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реВрдЪреА рдмрдирд╛рдП рд░рдЦрдиреЗ/рдЧреЗрдЯ рдкрд░ рд░реАрдлреНрд░реЗрд╢рд┐рдВрдЧ рдЖрдЗрдЯрдо рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдКрдкрд░реА рднрд╛рдЧред) рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкрд░реЗрд╢рд╛рдиреА рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдЖрдкрдХреЗ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рд░реЗрдбрд┐рд╕ рдХреИрд╢ рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдмреЗрджрдЦрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ "рдЧрд▓рдд" рддрддреНрд╡ рдХреЛ рдмреЗрджрдЦрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдХреИрд╢ рдХреА рд╕реНрдореГрддрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд░рд╡рд╛рд╣ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмреЗрджрдЦрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд╣рдВрдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлреИрдВрд╕реА рдмреБрдХ рдХреАрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред

рдореБрдЭреЗ рдПрд▓рдЖрд░рдпреВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рд░реАрдб-рд╣реИрд╡реА рд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреИрд╢реНрдб рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП Ctime/Atime рдХрд╛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧред

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рднрдВрдбрд╛рд░рдг рдирдХреНрд╢рд╛ рд╣реИред рдирдХреНрд╢рд╛ рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ рдЯреНрд░реИрд╡рд░реНрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реА рдХреБрдВрдЬреА рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://play.golang.org/p/lUw_1oPTLB рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдмрдбрд╝реЗ рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ ...

рдЖрд▓рд╕реА рдХреИрд╢ рдХреЗ рд▓рд┐рдП рд░реИрдВрдбрдо рдмреЗрджрдЦрд▓реА рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдкрдХрд╛ рдХреИрд╢ рд░реАрдб-рдЗрдВрдЯреЗрдВрд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╕реНрддреБрдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧреА рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЖрдк рдХреБрдЫ рдЧрд░реНрдо рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмреЗрджрдЦрд▓ рдХрд░ рджреЗрддреЗ рд╣реИрдВ (рдФрд░ рдЗрд╕ рддрд░рд╣ рддреБрд░рдВрдд рдХреИрд╢-рдорд┐рд╕), рдпрд╣ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред

рджрд┐рд▓рдЪрд╕реНрдк рд╕рдордп; рдпрд╣ рд╕рд┐рд░реНрдл рдПрдЪрдПрди рдорд╛рд░рд╛: https://danluu.com/2choices-eviction/

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди LRU рдЕрднреА рднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗ рдмрд┐рдирд╛ рдХреИрд╢ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

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

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

рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░, рдмрдЧ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реАрдорд╛ рдЕрдзрд┐рдХрддрдо рдореЗрдореЛрд░реА рдмреЗрд╣рддрд░ рд╣реИред

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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

karellm picture karellm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dbanck picture dbanck  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

noahwhite picture noahwhite  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yml picture yml  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bramp picture bramp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ