рдСрдирдкреАрдкреА рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЕрд╡рд▓реЛрдХрди

рд╢реБрдн рджреЛрдкрд╣рд░
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рд╣рдо plus1.wapstart.ru рдореЗрдВ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рдЗрди рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


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

рд╣рдо onPHP рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрдд CachePeer рд╡рд░реНрдЧ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рд╕рднреА рдХреИрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рдореНрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

abstract public function get($key); abstract public function delete($key); abstract public function increment($key, $value); abstract public function decrement($key, $value); abstract protected function store( $action, $key, $value, $expires = Cache::EXPIRES_MEDIUM ); abstract public function append($key, $data); 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд CachePeer рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ (рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп)



рдпрд╣ рдЖрд░реЗрдЦ рднрдВрдбрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ( рдкреБрд▓ рджреЗрдЦреЗрдВ) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рджреЛрдиреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рд░реЗрдбрд┐рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдирдлреНрдк рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ; рдореЗрдордХреЗрдЪреНрдб - рджреЛ рдкреВрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: рд╕реЙрдХреЗрдЯреНрд╕ рдкрд░ рдФрд░ рдореЗрдореНрдЪреЗрдЪреЗ ( http://php.net/Memcache ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ; рд╣рдо SharedMemory рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рд╕рдорд░реНрдерд┐рдд рддрдХрдиреАрдХреЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рдПрдХ рднреА рдСрдиреНрдХрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдЬреЛ рдореЗрдореНрдХреЗрдЪреНрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдЗрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирд┐рдпрдо рдмрдирд╛рдП рдЧрдПред :)

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдореЗрдореЗрдЪреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:

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

рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:


рдЬрдм рдПрдХ рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЕрдиреБрдкрд╛рдд рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЙрдЯрд░рдорд╛рд░реНрдХреЗрдбрдкреАрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЕрд░реНрде getActualWatermark () рд╡рд┐рдзрд┐ рд╕реЗ рдЙрдмрд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрди рдЬрд╛рддрд╛ рд╣реИ
  public function get($key) { return $this->peer->get($this->getActualWatermark().$key); } 

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

рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдХреИрд╢рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдпрд╛ рддреЛ php рдбрд┐рд▓реАрд╡рд░реА рд╕реЗ рдореЗрдорд╢ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╣рдорд╛рд░реЗ рдХреБрд▓ рдХреИрд╢ рдореЗрдВ рд╕реЗ рдПрдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ:

рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдорд╛рдирдХ рднрд╛рдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХреИрд╢рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдлрд┐рд░ рд╡рд┐рд╡рд░рдг рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред



рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбреЗрдХреЛрд░реЗрдЯрд░ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдХрд╛рдлреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рд╡реИрдз рд╣реИ:

  $swordfish = ReadOnlyPeer::create( new SequentialCache( PeclMemcached::create('localhost', 9898, 0.1), array( PeclMemcached::create('backup', 9898, 0.1), ) ) ); 


рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐:

  $swordfish = CascadeCache::create( PeclMemcached::create('unix:///var/run/memcached_sock/memcached.sock', 0), ReadOnlyPeer::create( new SequentialCache( PeclMemcached::create('localhost', 9898, 0.1), array( PeclMemcached::create('backup', 9898, 0.1), ) ) ), CascadeCache::NEGATIVE_CACHE_OFF ); 


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

рдСрдиреНрдлрдк рд╕реЗ рдХреИрд╢ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред Onphp рд╕реЗ CachePeer рдардВрдбрд╛ рд╣реИред
psред рдПрдХ рдмрд╛рд░ рдпрд╣рд╛рдВ рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреАред рд╢реБрд░реБрдЖрдд рдЗрд╕реА рдкрдж рд╕реЗ рд╣реБрдИ рдереАред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо plus1.wapstart.ru рдореЗрдВ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВрдЧреЗред

рдкреА рдкреА рдПрд╕ред рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рд▓реЛрдЧреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
hantim.ru/jobs/11163-veduschiy-qa-menedzher-rukovoditel-otdela-testirovaniya
hantim.ru/jobs/11111-veduschiy-php-razrabotchik-team-leader

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


All Articles