рд╣рдо рдЬреНрдЮрд╛рдкрди рдХреЗ рдмрдЬрд╛рдп MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: рд╣реЛрдирд╛ рдпрд╛ рди рд╣реЛрдирд╛?

"рдореЗрдордХреЛрдЪреНрдб рдХреЗ рдмрдЬрд╛рдп рдореЛрдВрдЧреЛрдбреАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ" рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдирд┐рдпрд╛рдВ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реЗрдгреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпреЗ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреИрд╢ рдЯреИрдЧрд┐рдВрдЧ рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ MongoDB рдореЗрдВ рдХреИрд╢ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдЕрдХреНрд╕рд░ (LRU - Least рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП) рд╣реИрдВред рдЙрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдХреИрд╢ рдЖрдХрд╛рд░ рдХреИрд╕реЗ рдмрдирд╛рдП рд░рдЦреЗрдВ? LRU, рд╡реИрд╕реЗ, "рдШреЛрдбрд╝рд╛" рдореЗрдордХреЗрдб рдХрд╛ рд╣реИ; рдЖрдк рдЕрдкрдиреЗ рдХреИрд╢ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдореЗрдордХреЗрдб рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди MongoDB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ CacheLRUd (GitHub рдкрд░ рдкреЛрд╕реНрдЯ) рд▓рд┐рдЦреАред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди DBMSs (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ, MongoDB рдореЗрдВ) рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ LRU рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдореЙрди рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдореЛрдВ рдХрд╛ рдЦреЗрдд (рдкреНрд░рддреНрдпреЗрдХ MongoDB рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рдПрдХ) рд╕рдордп-рд╕рдордп рдкрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдмрд╛рд░ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпреВрдПрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреИрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рддрдереНрдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╡рд┐рдХреЗрдиреНрджреНрд░реАрдХреГрдд (рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рдмрд┐рдирд╛) рд╣реИ (рдРрд╕рд╛ рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ "рднреЛрд▓реЗ" рд╡рд┐рдХрд▓реНрдк рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ MongoDB рдорд╛рд╕реНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реИ рдкреНрд░рддреНрдпреЗрдХ рд░реАрдб рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ) рдпрджрд┐ рдорд╛рд╕реНрдЯрд░ рдЖрдзрд╛рд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣реИ)ред рдиреАрдЪреЗ рд╡рд┐рд╡рд░рдг рдкрдврд╝реЗрдВред

рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ?

рдЖрдкрдХреЛ MongoDB рдХреЗ рд╕рд╛рде рдореЗрдордХреЗрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдЖрдЗрдП рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред "рдХреИрд╢" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╣реИрдВред

  1. рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ (рдпрд╛ рдЕрдиреНрдп рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдм рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрд╕рд╛рдзрди рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рдЕрдиреБрд░реЛрдз рд╣реИрдВред рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдПрдХ рдЫреЛрдЯреА рдХреИрд╢ рдЙрдореНрд░ рдмрдврд╝рдиреЗ рдХреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 рд╕реЗрдХрдВрдб) рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд▓реЛрдб рдХреЛ 100 рдЧреБрдирд╛ рдХрдо рдХрд░ рджреЗрддреЗ рд╣реИрдВ: рдЕрдм, рд╕реМ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХреНрд╡реЗрд░реА DBMS рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИред рдФрд░ рд╣рдореЗрдВ рд▓рдЧрднрдЧ рдбрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреБрд░рд╛рдирд╛ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛: рдЖрдЦрд┐рд░рдХрд╛рд░, рдЙрдореНрд░ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рдмрд╣реБрдд рдХрдо рд╣реИред
  2. рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреИрд╢ рд╣реИ: рдпрд╣ рдкреГрд╖реНрда рдХреЗ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдерд┐рд░ рдЯреБрдХрдбрд╝реЛрдВ (рдпрд╛ рдкреВрд░реЗ рдкреГрд╖реНрда) рдХрд╛ рдХреИрд╢ рд╣реИ, рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рд╣реА рдХрднреА рджреЗрдЦреЗ рдЧрдП рд╕рд╣рд┐рдд)ред рдпрд╣ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдХрд┐ рдХреИрд╢реНрдб рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рд▓рдВрдмрд╛ рд╣реИ (рдШрдВрдЯреЗ рдпрд╛ рджрд┐рди рднреА), рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреВрд░рд╛ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдХреИрд╕реЗ рдЧрд╛рд░рдВрдЯреА рджреЗрдВ рдХрд┐ рдХреИрд╢ рдореЗрдВ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдбреЗрдЯрд╛ рд╣реИ, рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рд╛рдл рдХрд░реЗрдВ? рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреБрдЫ рдмрдбрд╝реЗ рд╕рдВрд╕рд╛рдзрди X рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреИрд╢ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХреБрдЫ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрд╕рд╛рдзрди X рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдХрдорд╛рдВрдб "рдХреНрд▓рд┐рдпрд░ рдЯреИрдЧ X" рджреЗрдВред

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


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

рдФрд░ рдЕрдВрдд рдореЗрдВ, MongoDB рд░реАрдб рдСрдкрд░реЗрд╢рдВрд╕ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдореЗрдореЛрд░реА рдореИрдкреНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛-рдЙрдиреНрдореБрдЦ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд░реАрдбрд┐рдВрдЧ рд░реИрдо рд╕реЗ рд╕реАрдзреЗ рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдбрд┐рд╕реНрдХ рд╕реЗ рдирд╣реАрдВред (рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ MongoDB рдЙрддрдирд╛ рд╣реА рддреЗрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛: рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрдбрд╝реЗ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдиреЗрдЯрд╡рд░реНрдХ рджреЗрд░реА рдХреЗ рдХрд╛рд░рдг рдбреВрдм рд░рд╣рд╛ рд╣реИред)

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



CacheLRUd рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

## EACH MongoDB NODE рдкрд░ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
рд╕реАрдбреА / рдСрдкреНрдЯ
git рдХреНрд▓реЛрди рдХреНрд▓реЛрди git@github.com: рджрд┐рдорд┐рддреНрд░реАрдХреЛрдЯрд░реЛрд╡ / cachelrud.git
ln -s /opt / cachelrud/bin/cachelrud.init /etc/init.d/cachelrud

## рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
cp /opt / cachelrud/cachelrud.conf /etc/cachelrud.conf # рдФрд░ рдлрд┐рд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

## RHEL (RedHat, CentOS) рдХреЗ рд▓рд┐рдП:
chkconfig - рдПрдбрдб cachelrud
chkconfig cachelrud on

## ... рдпрд╛ рдбреЗрдмрд┐рдпрди / рдЙрдмрдВрдЯреВ рдХреЗ рд▓рд┐рдП:
рдЕрджреНрдпрддрди- rc.d cachelrud рдЪреВрдХ

рджрд╛рдирд╡ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдХреЛрдИ рдЪрдорддреНрдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдХреИрд╢реЗрдПрд▓рдЖрд░рдпреВрдб рдбреЗрдорди (рдбреЗрдорди рдлрд╛рд░реНрдо) рдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреМрди рд╕реЗ рдХреИрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MongoDB рдорд╛рд╕реНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреИрд╢ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ last_read_at рдлрд╝реАрд▓реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛), рдХреНрдпреЛрдВрдХрд┐) рдП) рдорд╛рд╕реНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реЗрдм рдереВрдерди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмреА) MongoDB рдЯреАрд╕реАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрдЪрд╛рд░ рдЕрд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ "рдардВрдб" рдХреЗ рд╕рд╛рде рдзрдордХреА рджреЗрддрд╛ рд╣реИ, рдЧ) рдкреНрд░рддреНрдпреЗрдХ рд░реАрдб рдкрд░ рд▓рд┐рдЦрдирд╛ рдмреЗрдХрд╛рд░ рд╣реИ, рдпрд╣ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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


рд╡рд┐рд╡рд░рдг рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред

рдФрд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ

CacheLRUdWrapper : рдпрд╣ PHP рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ CacheLRUd рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╡рд░реНрдЧ рд╣реИ, рдорд╛рдирдХ Zend_Cache_Backend рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд░реНрдЧ Zend рдлреНрд░реЗрдорд╡рд░реНрдХ 1 рдХреЗ рд▓рд┐рдП рд╣реИ; рдпрджрд┐ рдпрд╣ ZF2 рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ рдпрд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА)ред

Zend_Cache_Backend_Mongo : рдпрд╣ рдкрдбрд╝реЛрд╕реА GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ MongoDB рдХреЗ рд▓рд┐рдП Zend_Cache_Bachend рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред CacheLRUdWrapper рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдХреЛ рд▓рдкреЗрдЯреЗрдВ, рдФрд░ ZF1 рдХреА рд╢реИрд▓реА рдореЗрдВ MongoDB рдореЗрдВ LRU рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

 $ рд╕рдВрдЧреНрд░рд╣ = $ mongoClient-> yourDatabase-> cacheCollection;
 $ рд╕рдВрдЧреНрд░рд╣-> w = 0;
 $ рд╕рдВрдЧреНрд░рд╣-> setReadPreference (MongoClient :: RP_NEAREST);  // рдорд╛рд╕реНрдЯрд░ рд╕реЗ рднреА рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
 $ рдкреНрд░рд╛рдЗрдорд░реАрд╣реЛрд╕реНрдЯ = рдЕрд╢рдХреНрдд;
 foreach ($ mongoClient-> getConnections () $ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд░реВрдк рдореЗрдВ) {
     рдЕрдЧрд░ (in_array ($ рдЬрд╛рдирдХрд╛рд░реА ['рдХрдиреЗрдХреНрд╢рди'] ['connection_type_desc'], рд╕рд░рдгреА ("STANDALONE", "PRIMARY"))) {
         $ рдкреНрд░рд╛рдЗрдорд╣реЙрд╕реНрдЯ = $ рдЬрд╛рдирдХрд╛рд░реА ['рд╕рд░реНрд╡рд░'] ['рд╣реЛрд╕реНрдЯ'];
     }
 }
 $ рдмреИрдХреЗрдВрдб = рдирдпрд╛ Zend_Cache_Backend_Mongo (рд╕рд░рдгреА ('рд╕рдВрдЧреНрд░рд╣' => $ рд╕рдВрдЧреНрд░рд╣));
 рдЕрдЧрд░ ($ рдкреНрд░рд╛рдЗрдорд╣реЙрд╕реНрдЯ) {
     // рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ (рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдлрд▓рддрд╛ рдирд╣реАрдВ рд╣реИ) рдЖрджрд┐ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
     $ рдмреИрдХреЗрдВрдб = рдирдпрд╛ Zend_Cache_Backend_CacheLRUdWrapper (
         $ рдмреИрдХреЗрдВрдб
         $ рд╕рдВрдЧреНрд░рд╣-> getName (),
         $ рдкреНрд░рд╛рдердорд┐рдХ рдЖрдзрд╛рд░,
         рдЕрд╢рдХреНрдд,
         рд╕рд░рдгреА ($ yourLoggerClass, 'yourLoggerFunctionName')
     );
 }
 // рдЖрдк рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ $ рдмреИрдХреЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ: рдЖрдк рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

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


All Articles