
рдореИрдВ Node.JS рдореЗрдВ рдореЗрдордХреЗрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП, 4 рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рд╕реАрдзреЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдореВрд▓ рдореЗрдВ рджрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣рд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рд╣реИред
- mc v1.0.6 - Node.js ( mc ) рдХреЗ рд▓рд┐рдП рдореЗрдХрдЪреЗ рдХреНрд▓рд╛рдЗрдВрдЯ
- рдиреЛрдб-рдореЗрдордЪреИрдЪ v0.3.0 - рдиреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реБрджреНрдз-рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдордХреЗрдЪреНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реАред ( рдиреЛрдб-рдореЗрдореЗрдЪреЗ )
- рдиреЛрдб-рдореЗрдореНрдЪреНрдЪреНрдб v0.2.6 - рдкреВрд░реА рддрд░рд╣ рд╕реЗ Node.js ( рдиреЛрдб- рдореЗрдореНрдХреЗрдб) рдХреЗ рд▓рд┐рдП рдореЗрдордХреНрд▓реЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ
- memjs v0.8.0 - MemJS рдПрдХ рд╢реБрджреНрдз Node.js рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЗрдореЗрдХреИрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ( рдореЗрдордЬ )
рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рдЪрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд╛рд░рдг рд╕рд░рд▓ рд╣реИ: рдмрд╛рдХреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЙрд▓реНрд▓реЗрдЦ рдерд╛ред
рдЙрдиреНрд╣реЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╣рд╛рде рдЕрдм рдХреЗрд╡рд▓ рд▓реЗрдЦ рддрдХ рдкрд╣реБрдВрдЪреЗред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдФрд░ рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡рд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЙрди рдкрд░ рдкрд░реАрдХреНрд╖рдг рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
рдмреИрдХрд╕реНрдЯреЛрд░реА рд╕реЗ
рдореИрдВрдиреЗ Node.JS рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдкрд░ рд▓рд┐рдЦрд╛ред рдХрд╛рд░реНрдп рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ Node.JS рдХреЛ рдЪреБрдирд╛, PHP рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдЦрд╛ "рджреВрд░ рдФрд░ рд╡рд┐рд╕реНрддреГрдд" рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкрдЫрддрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреБрдирд╛рд╡ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдВред рдЕрдм рджреВрд╕рд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╣реА рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ Node.JS рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рд╣реА рдард╣рд░рд╛ рд░рд╣рд╛ рд╣реИред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдХреЗ рдЧрд╣рди рдЕрдзреНрдпрдпрди рд╕реЗ рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рдорд┐рд▓реАред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдРрд╕реА рднрд╛рд╖рд╛ рдирд╣реАрдВ рдереА рдЬрд┐рд╕реЗ рдореИрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЬрд╛рдирддрд╛ рдерд╛ред рдФрд░ рдиреЛрдбреНрдпреВрдирд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рд╕реЗ рдореИрдВ рдХрд┐рддрдирд╛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА PHP рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред
рдереЛрдбрд╝рд╛ рд╡рд┐рд╖рдп рд╕реЗ рднрдЯрдХ рдЧрдпрд╛ред рдмреЗрд╢рдХ, рдпреЗ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рдлрд╛рдпрджреЗ рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рдХреЗ рд╣реЗрдмреЗ рдФрд░ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ PHP рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдордиреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЬрдирдмреА рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП PHP рдореЗрдВ рдмрджрд▓рддреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ред рдлрд┐рд░, рдореБрдЭреЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдмрд╛рд░, рдЬрдм рд╕реА ++ рд╕реЗ рдореЛрддреА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореЛрддреА рд╕реЗ рдкреАрдПрдЪрдкреА рддрдХред рдлрд┐рд░ рдореИрдВрдиреЗ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛, рдЕрдкрд░рд┐рдЪрд┐рдд рдЙрдкрдХрд░рдг рднреА рд▓рд┐рдпрд╛ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рдпрд╣ рд╕реАрдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдХрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЪрд╛рд╣реЗ рд╡рд╣ рдореЛрдВрдЧрдбреЙрдм рдпрд╛ рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛ, рдпрд╛ рдПрдХ рд╣реА рдореИрд╕рдХрд▓ рдХреЗ рд╕рд╛рде рднреАред рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ PHP рдпрд╣рд╛рдБ рдирд╣реАрдВ рдерд╛ред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рджреНрд░рд╡реНрдпрдорд╛рди рд╕реЗ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдПрдХ рдХреЛ рдЪреБрдирдирд╛ рдФрд░ рдореЗрд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЬрд╝рд░реВрд░рдд рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдХрджрдо рджрд░ рдХрджрдо, рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдореБрдЭреЗ рдореЗрдордХреЗрд╢ рдорд┐рд▓рд╛ред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдкреНрд░рдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрди рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХ рдПрдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд░реВрдВрдЧрд╛, рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореИрдВ рдХреЗрд╡рд▓ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реВрдВ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реЛрдВрдЧреАред
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ 4 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреА:
Init (cb) - рд╡рд╕реНрддреБ рдЖрд░рдВрднреАрдХрд░рдг
рд╕реЗрдЯ (рдХреА, рд╡реИрд▓, рд╕реАрдмреА) - рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛
рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдХреБрдВрдЬреА, рд╕реАрдмреА) - рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдп
рдЕрдВрдд () - рд╕рднреА рд╕рдХреНрд░рд┐рдп рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░реЗрдВ
рдПрдорд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
impl.mc = function(){}; impl.mc.prototype = { Init : function(cb) { var self = this; var Mc = require('mc'); self.mmc = new Mc.Client('<ip>:11211', Mc.Adapter.binary); self.mmc.connect(function() { cb(self); }); }, Set : function(key, val, cb) { this.mmc.set(key, val, {flags: 0, exptime : 100}, cb); }, Get : function(key, cb) { this.mmc.get(key, cb); }, End : function() { this.mmc.disconnect(); } };
рд╣рдо рд╢реЗрд╖ 3 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ impl.js. рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдмрдирд╛рдКрдВрдЧрд╛ рддрд╛рдХрд┐ рдХреЛрдб рдХреЛ рдвреЗрд░ рди рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдЗрддрдирд╛ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ред рдпреЗ рд╕рд┐рд░реНрдл рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░реИрдкрд░ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рд╣реЛрдЧрд╛ред
рдкрд╣рд▓рд╛ рдХрджрдо рдлреЙрд░реНрдо рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде 1000 рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд▓рд┐рдЦрдирд╛ рд╣реИ:
__key_ [libName] _ [0 ... 999],
рдЬрд╣рд╛рдБ libName рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдирд╛рдо рд╣реИ (mc, memcached ...)
рд╣рдо рд╕рдордп рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рдХреБрдВрдЬреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рдмреАрдЪ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдУрд╡рд░рд▓реИрдк рди рдХрд░реЗрдВред
рджреВрд╕рд░рд╛ рдЪрд░рдг - рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕реАрдорд╛ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде 100k рдмрд╛рд░ рдкрдврд╝рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╕реЗ, рд╣рдо рд╕рдордп рдХреЛ рдиреЛрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд░реАрдбрд┐рдВрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдВ рдХреЛрдб рд╣реА рд╣реИ, рдЬреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдареАрдХ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖред
var cacheImpl = require('./impl');
рдореБрдЭреЗ рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рд╡рд╣ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдкреВрд░реНрдг рдореВрд▓реНрдпреЛрдВ рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рднреА) рдирд╣реАрдВ рдерд╛, рдЕрд░реНрдерд╛рддреН рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреМрди рд╕рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддреЗрдЬ рд╣реЛрдЧрд╛ред
рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЯреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдереЗ, рд▓рд┐рдЦрдиреЗ / рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдбрд╝реЛрд╕реА рд╕рд░реНрд╡рд░ рдкрд░ рдореЗрдордХреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд░реНрд╡рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реНрдг рдореВрд▓реНрдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдкреЗрдХреНрд╖ рдореВрд▓реНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред
рдХреБрд▓, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ:
memcache рд╕реЗрдЯ qps: 8929
memcache Get qps: 19444
рдореЗрдорд╕реЗрдЯреЗрдб рд╕реЗрдЯ qps: 6098
memcached рдорд┐рд▓ qps: 8924
memjs рд╕реЗрдЯ qps: 8850
memjs Get qps: 12857
mc рд╕реЗрдЯ qps: 14286
mc get qps: 23207
рддреБрд░рдВрдд рд╣рдо рдПрдХ рд╕реНрдкрд╖реНрдЯ рдиреЗрддрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛, рдореИрдВ рдиреЗрддрд╛ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реВрдВрдЧрд╛ред
Zapsi рд░реЗрдЯрд┐рдВрдЧ:
1.mc 100.00%
2. рдореЗрдореНрдЪреЗрд╢ 62.50%
3. рдореЗрдордЬ 61.95%
4. рдЬреНрдЮрд╛рдкрди 42.69%
рдкрдврд╝рдирд╛ рд░реЗрдЯрд┐рдВрдЧ:
1. рдПрдорд╕реАрдмреА%
2. рдореЗрдореЗрдХреИрд╕ 83.79%
3. рдореЗрдореНрд╕ 55.40%
4. 38.45%

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