рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░реЗрдбрд┐рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдм рдПрдХ рд╕рд╛рде рдХрдИ рдереНрд░реЗрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдХреБрдВрдЬреА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Php рдореЗрдВ Redis рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ Rediska рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЬрдм рдореИрдВ рд░реЗрдбрд┐рд╕реНрдХрд╛ рдореИрдиреБрдЕрд▓ рдкрдврд╝рддрд╛ рдерд╛, рддрдм рднреА рдореИрдВрдиреЗ
рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рдЦрдВрдб рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдЖрдЬ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рджреЛрд╖ рджреЗрддрд╛ рд╣реВрдВ, рдпрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдХрд╛ рдореЗрд░рд╛ рдЦрд░рд╛рдм рдЬреНрдЮрд╛рди, рдпрд╛ рдореЗрд░реА рдзреАрдореА-рдмреБрджреНрдзрд┐, рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЕрдХреНрд╖рдорддрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, Rediska рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдФрд░ рдлрд┐рд░ Reddka рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд▓реЗрдирджреЗрди рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж
, рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрд╡рд░реБрджреНрдз рд╣реИред рд▓реЗрди-рджреЗрди рдХреЗ рднреАрддрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рддрдХ рд▓реЗрдЦрди рдХреБрдВрдЬреА (рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рдирд╣реАрдВ) рдХреА рдЬрд╛рддреА рд╣реИред
рд╣рд╛рдБ, рджреЛрдиреЛрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╡реЙрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ "рдЪреЗрдХ-рдЗрди-рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрд╕реНрдЯрд┐рдХ рд▓реЙрдХрд┐рдВрдЧ" рдХрд╛ рд╡рд┐рд╡рд░рдг рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рд░реЗрдбрд┐рд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ:
рд▓реЗрди-рджреЗрди рдХреЗ рд╕рднреА рдЖрджреЗрд╢ рдХреНрд░рдордмрджреНрдз рдФрд░ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЕрдиреБрд░реЛрдз рд░реЗрдбрд┐рд╕ рд▓реЗрдирджреЗрди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ
рдмреАрдЪ рдореЗрдВ рдкрд░реЛрд╕рд╛
рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рдкреГрдердХ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдореБрдЭреЗ рдкреНрд░рддреАрдд рд╣реБрдЖ (рдореИрдВ рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рд░ рдХрд░реВрдВрдЧрд╛) рдпрд╣ рд╕рд┐рд░реНрдл рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ рдХрд┐ рд▓реЗрдирджреЗрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдХреЛрдИ рднреА рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реБрдИ рдереА рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ Rediska рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдЯ рдкрд░ рдбреЙрдХ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреА рдереАред
$ рд╡рд┐рдХрд▓реНрдк = рд╕рд░рдгреА (
'namepace' => 'Application_' ,
'рд╕рд░реНрд╡рд░' => рд╕рд░рдгреА (
рд╕рд░рдгреА ( 'рд╣реЛрд╕реНрдЯ' => '127.0.0.1' , 'рдкреЛрд░реНрдЯ' => 6379 , 'db' => 5 )
)
) ;
requirement_once 'Rediska.php' ;
// рд░рд┐рдбрд┐рд╕реНрдХрд╛ рдЗрдХрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ рд░рд┐рдбрд┐рд╕реНрдХрд╛ = рдирдпрд╛ рд░реЗрдбрд┐рд╕реНрдХрд╛ ( $ рд╡рд┐рдХрд▓реНрдк ) ;
рдХреЗ рд▓рд┐рдП ( $ i = 1 ; $ i <= 10000 ; $ i ++ ) {
// рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░реЗрдВ
$ рд▓реЗрдирджреЗрди = $ rediska -> рд▓реЗрдирджреЗрди ( ) ;
// рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ рдореВрд▓реНрдп = $ rediska -> рдорд┐рд▓рддрд╛ рд╣реИ ( 'test_value' ) ;
// рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореВрд▓реНрдп
$ рдорд╛рди ++;
// рдирдпрд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ
$ рд▓реЗрдирджреЗрди -> рд╕реЗрдЯ ( 'test_value' , $ рдореВрд▓реНрдп ) ;
// рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реЗрдирджреЗрди
$ рд▓реЗрдирджреЗрди -> рдирд┐рд╖реНрдкрд╛рджрд┐рдд ( ) ;
}
рдЗрдХреЛ $ рд░рд┐рдбрд┐рд╕реНрдХрд╛ -> рдорд┐рд▓рддрд╛ рд╣реИ ( 'test_value' ) ;
рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рджреЛ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдЪрд▓рддреА рдереА, рдЕрд░реНрдерд╛рдд рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ 20 рд╣рдЬрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рдХреБрдВрдЬреА "test_value" рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдФрд╕рддрди рд▓рдЧрднрдЧ 12 рд╣рдЬрд╛рд░ рдерд╛ред рдпрд╛рдиреА рдХреЛрдИ рддрд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред
рдЕрдм рдореИрдВ рдШрдбрд╝реА рдЬреЛрдбрд╝рдХрд░ рдкрд╛рд╢ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ:
рдХреЗ рд▓рд┐рдП ( $ i = 1 ; $ i <= 10000 ; $ i ++ ) {
рдХреЗ рд▓рд┐рдП ( $ j = 1 ; $ j <= 5 ; $ j ++ ) {
// рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░реЗрдВ
$ рд▓реЗрдирджреЗрди = $ rediska -> рд▓реЗрдирджреЗрди ( ) ;
// рджреЗрдЦреЛ
$ рд▓реЗрдирджреЗрди -> рдШрдбрд╝реА ( 'test_value' ) ;
// рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ рдореВрд▓реНрдп = $ rediska -> рдорд┐рд▓рддрд╛ рд╣реИ ( 'test_value' ) ;
// рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореВрд▓реНрдп
$ рдорд╛рди ++;
// рдирдпрд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ
$ рд▓реЗрдирджреЗрди -> рд╕реЗрдЯ ( 'test_value' , $ рдореВрд▓реНрдп ) ;
// рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реЗрдирджреЗрди
рдХреЛрд╢рд┐рд╢ рдХрд░реЛ {
$ рд▓реЗрдирджреЗрди -> рдирд┐рд╖реНрдкрд╛рджрд┐рдд ( ) ;
} рдкрдХрдбрд╝ ( Rediska_Transaction_AbortedException $ e ) {
рдЬрд╛рд░реА рд░рдЦреЗрдВ ;
}
рддреЛрдбрд╝рдирд╛ ;
}
}
рдпрд╛рдиреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рд▓реЗрдирджреЗрди рдХреЛ 5 рдмрд╛рд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, 5 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдФрд╕рдд 17 рд╣рдЬрд╛рд░ рд╕рд╛рдордиреЗ рдЖрдП, рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ 10 рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рддреЛ рдФрд╕рддрди 19 рд╣рдЬрд╛рд░ рдирд┐рдХрд▓реЗрдВрдЧреЗред
рдпреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рд╣реИрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд╛рде рдХрдИ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ 5 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Redis рдХреЗ рдкрд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХреБрдВрдЬреА рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдПрдХ рддрдВрддреНрд░ (рджрд╕реНрддрд╛рд╡реЗрдЬ) рдирд╣реАрдВ рд╣реИред
рдпрд╣ рддрдп рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдХрд┐ рдиреНрдпрд╛рдп рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХрд╛рд░реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рд╣реИред