PHP рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░

рдпрд╣ рдХреНрдпрд╛ рд╣реИ


рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд░рд╛рдЬреНрдпреЛрдВ:
рдпрд╣ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ 1970 рдореЗрдВ рдмрд░реНрдЯрди рдмреНрд▓реВрдо рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЖрдкрдХреЛ рдХрдИ рддрддреНрд╡реЛрдВ рдХреЛ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рддрддреНрд╡ рд╕реЗрдЯ рдХреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд╕реЗрдЯ рдореЗрдВ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреА рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ), рд▓реЗрдХрд┐рди рдЧрд▓рдд рдирдХрд╛рд░рд╛рддреНрдордХ рдирд╣реАрдВред



рдПрдХ рд╕рд░рд▓


рдпрд╣ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдирдореВрдиреЗ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред


рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


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

рдпрд╣ рдХрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


рдореИрдВ рдХрд┐рд╕реА рд╢рдмреНрдж рдпрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд╢рдмреНрджрдХреЛрд╖> 10,000,000 рд╢рдмреНрджреЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВред Google рдЕрдкрдиреЗ рд╕рд░реНрдЪ рдЗрдВрдЬрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рдЗрд╕рдХреА рдЧрддрд┐ рд╣реИ, рдЬрдм рдЗрдиреНрд╕рд░реНрдЯ / рдЪреЗрдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЕрдиреБрдкрд╛рдд 0.001 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рдЪреЗрдХ 10000 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╣реИ рдЬрдм рдкреАрдПрдЪрдкреА рдореЗрдВ рдорд╛рдирдХ in_array рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рд▓рд╛рдн рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ: рдЧрддрд┐, рдХрдо рдбрд┐рд╕реНрдХ рд▓реЛрдб, рдХрдо рдореЗрдореЛрд░реА рдЦрдкрддред
рд╡рд┐рдкрдХреНрд╖: рдореВрд▓реНрдпреЛрдВ рдХреА рд▓рдВрдмреА рд▓реЛрдбрд┐рдВрдЧ, рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ (рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ)

рджреВрд╕рд░реА рдмрд╛рдЗрдХ рдХреНрдпреЛрдВ? рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА php рдкрд░ рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред


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


рдирдордХ рдХреНрдпрд╛ рд╣реИ?


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред
1. рдереЛрдбрд╝рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреИрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ
2. рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

1. рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рд▓реАрдЯ рдСрдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд┐рдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ 1 рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдПрдХ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдореИрдВрдиреЗ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рди рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ " рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ " рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдПрдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдереА, рддреЛ рд╣рдо рдиреЛрдХреНрд╕реЗрдВрдЯреЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред
2. рдореИрдВ рд╣реИрд╢ рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ 2 рд╕рдВрдХреЗрддрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЧрддрд┐ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдХреЗрддрдХ рд╣реИред рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ , 1000 рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрд╢ рдмрдирд╛рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдореЗрдВ 1000 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ 64% рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХреАред рдкреНрд░рддрд┐рдпреЛрдЧреА 40% рд╕реЗ рдКрдкрд░ рдирд╣реАрдВ рдЙрдареЗред
рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рд╣реИ:
abs( crc32( md5($this->seed[0] . $string) ) ) % $size; 

рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ $ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ-> рдмреАрдЬ [рдХреЛ реж]ред

рдХреЛрд╢рд┐рд╢ рдХрд╣рд╛рдБ рдХрд░реЗрдВ?


рдореИрдВ рддреБрдорд╕реЗ рдЧрд┐рддреБрдм рдХреА рд╡рд┐рдирддреА рдХрд░рддрд╛ рд╣реВрдБред
рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

 include 'bloom.class.php'; $parameters = array( 'entries_max' => 2 //     2 ,     0.1% ); $bloom = new Bloom($parameters); // ,     $bloom->set('Some string'); //   echo $bloom->has('Some string'); //true // ,   Bloom     counter $bloom->delete('Some string'); 

рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк:

 /* // entries_max (int)  .  : 100. error_chance (float) (0;1)  .  : 0.001. counter (boolean)     ,     .  : false. //     set_size (int)   .  : . hash_count (int)   .  : . //  ,   ['hash'] strtolower (boolean)       .  : true; */ 


рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг, рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ (рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ in_array рдХреЗ рд╕рд╛рде рдФрд░ рддреАрди рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛)ред рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдЦреБрдж рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЛрдИ рднреА рд╕рд╛рдЗрдХрд┐рд▓ рдЪрд▓рд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣реЗрдЧрд╛ред
рдмреЛрдирд╕: рдмрд┐рдирд╛ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдФрд░ рд╕рд╛рде рдореЗрдВ in_array рдХреЗ рдЦрд┐рд▓рд╛рдл 25,000 рдЪреЗрдХ рдХреЗ рд╕рд╛рде 50,000 рдирдореВрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрдВрдЪрдорд╛рд░реНрдХред

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


All Articles