рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдФрд░ рдЗрдВрд╕рд░реНрдЯ рдХреА рдХреБрдЫ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдБ

рд▓реЗрдЦ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдФрд░ php_handlerocket рдЕрдкрдбреЗрдЯ рдФрд░ рдЗрдВрд╕рд░реНрдЯ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡

рдХреБрдЫ рд╕рдордп UPDATE & INSERT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореЗрдЬ рдкрд░ рд╕рдм рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
CREATE TABLE `test`.`test` (
`keyid` varchar(45),
`value` varchar(45),
PRIMARY KEY (`keyid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251


рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ
$port = 9998;
$hs = new HandlerSocket($host, $port);
$retval = $hs->executeInsert(0, array( '112233090' , '12212212' ));
var_dump($retval);

* This source code was highlighted with Source Code Highlighter .

рдЬрд╛рд░реА bool(false);
bool(false);


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЫрд╛рддреА рдмрд╕ рдЦреЛрд▓рд╛:
рдЕрдЧрд░ рд╣рдо SHOW PROCESSLIST рджреЗрдЦрддреЗ рд╣реИрдВ
рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╕реВрдЪреА рд╣реИрдВрдбрд▓рд░рдХреЗрдЯ рджрд┐рдЦрд╛рдПрдВ
рддрдм рдореЛрдб рдореЗрдВ рд╕реНрдЯреЗрдЯ рдХреЙрд▓рдо рдХреА рд▓рд╛рдЗрди 17 рд╕рднреА рдкрд┐рдЫрд▓реА рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ:
mode=rd
mode=wr

рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдФрд░ php_handlerocket рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡ рдЬрдм рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ , 16 рд░реАрдбрд┐рдВрдЧ рдереНрд░реЗрдб рдФрд░ рдПрдХ рд▓реЗрдЦрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ my.cnf рдореЗрдВ рд╕реЗрдЯ рд╣реИ
loose_handlersocket_threads = 16
# the number of worker threads (for read requests)

loose_handlersocket_threads_wr = 1
# the number of worker threads (for write requests)

рдЗрд╕рд▓рд┐рдП, рд░реАрдбрд┐рдВрдЧ рдереНрд░реЗрдбреНрд╕ (рдереНрд░реЗрдбреНрд╕) 9998 рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ 9999 рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк INSERT / UPDATE / DELETE рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкреЛрд░реНрдЯ 9999 рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛
$host = 'localhost' ;
$port = 9998;
$port_wr = 9999;

$hs = new HandlerSocket($host, $port_ wr);


* This source code was highlighted with Source Code Highlighter .


рдЗрд╕реА рддрд░рд╣ рдореВрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде: telnet akalend.local 9998
tlnet: connect to address fe80::217:f2ff:feee:3a60: Connection refused
Trying 192.168.1.10...
Connected to akalend.local.
Escape character is '^]'.
P 0 test test PRIMARY keyid,value
0 1
0 = 1 123123
0 2 123123 asdasdasd
0 = 1 123123 0 0 D
2 1 readonly
telnet akalend.local 9998
tlnet: connect to address fe80::217:f2ff:feee:3a60: Connection refused
Trying 192.168.1.10...
Connected to akalend.local.
Escape character is '^]'.
P 0 test test PRIMARY keyid,value
0 1
0 = 1 123123
0 2 123123 asdasdasd
0 = 1 123123 0 0 D
2 1 readonly

INSERT / UPDATE рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

telnet akalend.local 9999
Trying fe80::217:f2ff:feee:3a60...
telnet: connect to address fe80::217:f2ff:feee:3a60: Connection refused
Trying 192.168.1.10...
Connected to akalend.local.
Escape character is '^]'.
P 0 test test PRIMARY keyid,value
0 1
0 = 1 123123 1 0 D
0 1 1
0 + 2 1111 12345
0 1
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрддрд╛ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдЕрдм рд╕реВрдЪреА 1 рдореЗрдВ рдХреЛрдб рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛:
bool(true)


рдЕрдВрдд рдореЗрдВ, MacX 2Gb 2.3 GHz CoreDuo рдХрд╛ рдереЛрдбрд╝рд╛ рдкрд░реАрдХреНрд╖рдг, рдЙрджреНрджреЗрд╢реНрдп (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕) рдкрд░ рдХреБрдЫ рднреА рддреЗрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореЗрдХрдЪреЗ, рд░реЗрдбрд┐рд╕, рдореЗрдореНрдЪреЗрдЪреЗрдм, рдПрдЪрдПрд╕, рддреЛрддреЛ рддрд╛рдирд╛рд╢рд╛рд╣ рдореЗрдВ 32 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ 100,000 рд░рд┐рдХреЙрд░реНрдб рд▓рд┐рдЦрдирд╛ / рдкрдврд╝рдирд╛
рдПрдХ рдзрд╛рдЧреЗ рдореЗрдВ, рдПрдХ рдХрдиреЗрдХреНрд╢рди, рджреЗрд╢реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред

рдкрд░рд┐рдгрд╛рдо:
NoSQLрд╕реЗрдЯрдкреНрд░рд╛рдкреНрдд
рдПрдЪ рдПрд╕33.424.6 * / 26.3 **
Mc16.715.6
McDb21.417.5
redis19.419.6
TokyoTr22.122.8


рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп, рдФрд╕рддрди 3-5 рдорд╛рдк рдХрд┐рдП рдЧрдПред
* - рдкрдврд╝рдиреЗ рдХреЗ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рд▓рд┐рдП
** - рд▓реЗрдЦрди рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рд▓рд┐рдП
рдореИрдВ рдФрд░ рдХреНрдпрд╛ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛: рдореЗрдореНрдмреЗрд╕ рдФрд░ рдЯрд╛рд░рдирдЯреВрд▓

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


All Articles