{"id":384579,"date":"2024-06-29T05:35:33","date_gmt":"2024-06-29T05:35:33","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=384579"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T05:35:33","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=384579","title":{"rendered":"<span>\u041d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u043f\u043e\u0435\u0434\u0438\u043d\u043e\u043a: Tarantool 2.10 vs Redis 7.0.5<\/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-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/33c\/a30\/e51\/33ca30e51632e15d76d11823a3f8eb07.jpg\" width=\"1600\" height=\"900\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/33c\/a30\/e51\/33ca30e51632e15d76d11823a3f8eb07.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441, \u044f \u0431\u044d\u043a\u0435\u043d\u0434-\u0442\u0438\u043c\u043b\u0438\u0434 \u0432 <a href=\"https:\/\/kts.studio\/\"><u>KTS<\/u><\/a>.<\/p>\n<p>Tarantool \u0438 Redis \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u2014 \u0434\u0432\u0430 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432 \u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c, \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438.\u00a0<\/p>\n<p>\u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432 \u043d\u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0436\u0435\u0433\u043e. \u0418 Tarantool, \u0438 Redis \u2014 \u00ab\u043e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435\u00bb \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435 \u0432\u0437\u044f\u0442\u043e \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u0442\u044c \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438, \u0438 \u043f\u043e\u0442\u043e\u043a\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043f\u043e\u0442\u043e\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c. \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0430 \u044d\u0442\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u2014 in-memory \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0431\u0440\u0430\u0442\u044c \u0432 \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0439 vinyl \u0434\u0432\u0438\u0436\u043e\u043a \u0432 Tarantool.\u00a0<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c: \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c Tarantool \u043a\u0430\u043a \u0437\u0430\u043c\u0435\u043d\u0443 Redis? \u041f\u0440\u043e\u0441\u044f\u0434\u0435\u0442 \u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437-\u0437\u0430 \u0432\u0441\u0435\u0445 \u00ab\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445\u00bb \u0444\u0438\u0447\u0435\u0439 \u0432 Tarantool? \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u043b\u0438 \u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439?<\/p>\n<p>\u041c\u044b \u0432\u0437\u044f\u043b\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Redis \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u0436\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043d\u0430 Tarantool, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 K-V \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439: \u0434\u043b\u044f Tarantool \u044d\u0442\u043e Tarantool Cartridge, \u0434\u043b\u044f Redis \u2014 Redis Cluster.<\/p>\n<p>\u0412\u044b\u0432\u043e\u0434\u044b \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"#ending\">\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/a><\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/k6.io\/\"><u>Grafana K6<\/u><\/a> \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043d\u0430 JavaScript \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u0438\u043c\u0435\u0435\u0442 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a HTTP, WebSocket, gRPC \u0438 \u0442.\u0434.\u00a0<\/p>\n<p>Grafana K6 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0442\u0430\u043a \u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Grafana. \u0423\u0434\u043e\u0431\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e K6 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u041a6. \u0422\u0430\u043a, \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u041a6 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 Tarantool, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 <a href=\"https:\/\/github.com\/tarantool\/xk6-tarantool\"><u>\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435<\/u><\/a>. \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u041a6 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0417\u0430 \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 7 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"#1\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1: key-value c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 set\/get\/delete<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#1r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#2\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 2: \u0441\u0447\u0435\u0442\u0447\u0438\u043a c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 incr\/decr<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#2r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#3\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 3: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#3r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#4\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 4: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#4r1\">Redis appendfsync: everysec<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4r2\">Redis appendfsync: Always<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4r3\">Redis appendfsync: No<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4t1\">Tarantool wal_mode Write<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4t2\">Tarantool wal_mode: None<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4t3\">Tarantool wal_mode: Fsync<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#5\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 5: \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#5r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#6\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6: \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#6r\">Redis master-slave<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6t1\">Tnt master-slave<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#7\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 7: \u043a\u043b\u0430\u0441\u0442\u0435\u0440<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#7r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#ending\"><strong>\u041e\u0431\u0449\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0438\u0437 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 1-5<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438: Ubuntu, 4CPU, 16GB RAM, 30GB SSD.<br \/><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u043d\u0430 \u0434\u0432\u0443\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 Ubuntu, 4CPU 16GB RAM, 30GB SSD.<br \/><strong>\u0412\u0441\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 100 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e 120 \u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1. \u041f\u0440\u043e\u0441\u0442\u043e\u0439 Key-Value\u00a0<\/h2>\n<p>\u0411\u0435\u0440\u0435\u043c 3 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: <\/p>\n<ul>\n<li>\n<p>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0443<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c 100 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u041a\u043b\u044e\u0447\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f + \u043d\u043e\u043c\u0435\u0440 \u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0440\u0430\u0432\u043d\u043e\u0435 \u043a\u043b\u044e\u0447\u0443.<\/p>\n<p><strong>Redis:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/p>\n<p><strong>Tarantool:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<br \/>\u0421\u043f\u0435\u0439\u0441 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 (key string, value string)<\/p>\n<p><a class=\"anchor\" name=\"1r\" id=\"1r\"><\/a><\/p>\n<h3>? Redis<\/h3>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 k6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import redis from 'k6\/experimental\/redis'; import exec from 'k6\/execution';   export const options = {     discardResponseBodies: true,     scenarios: {         test: {             executor: 'constant-vus',             exec: 'set_keys',             vus: 100,             duration: '120s',         },         test: {             executor: 'constant-vus',             exec: 'get_keys',             vus: 100,             duration: '120s',         },         test: {             executor: 'constant-vus',             exec: 'del_keys',             vus: 100,             duration: '120s',         },     }, }; const client = new redis.Client({     addrs: new Array('host:port\u2019),     password: '',     db: 0, });   export function set_keys() {     client.set(exec.vu.iterationInInstance + exec.vu.idInInstance * 100, exec.vu.iterationInInstance + exec.vu.idInInstance * 100); } export function get_keys() {     client.get(exec.vu.iterationInInstance + exec.vu.idInInstance * 100); } export function del_keys() {     client.del(exec.vu.iterationInInstance + exec.vu.idInInstance * 100); } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p><em>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 set_keys, get_keys, del_keys \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/em>\u00a0<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432<\/h3>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25583<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31967<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31355<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">75.47\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.19ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132.3ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.36ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.96ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">52.6\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132.48ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.37ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.09ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">55.94\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">115.23ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.95ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"1t\" id=\"1t\"><\/a><\/p>\n<h3>? Tarantool<\/h3>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432 \u0422\u0430\u0440\u0430\u043d\u0442\u0443\u043b\u0435 \u0432\u0438\u0434\u0430 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447 \u2013 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2013 \u0441\u0442\u0440\u043e\u043a\u0430. \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043a\u043b\u044e\u0447\u0443 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">box.cfg{listen=\"127.0.0.1:3301\"} box.schema.space.create(\"test\") box.space.test:format({{name=\"name\", type=\"unsigned\"}, {name=\"value\", type=\"string\"}}) box.space.test:create_index(\"primary\", {parts={\"name\"}})<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 k6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import tarantool from \"k6\/x\/tarantool\"; import exec from 'k6\/execution';   const conn = tarantool.connect(\u201chost:port\u201d); export const options = {     discardResponseBodies: true,     scenarios: {         set: {             executor: 'constant-vus',             exec: 'set',             vus: 100,             duration: '120s',         },         get: {             executor: 'constant-vus',             exec: 'get',             vus: 100,             duration: '120s',         },         del: {             executor: 'constant-vus',             exec: 'del',             vus: 100,             duration: '120s',         },     }, };   export function set() {     tarantool.replace(conn, \"test\", [exec.vu.iterationInInstance + exec.vu.idInInstance * 100, (exec.vu.iterationInInstance + exec.vu.idInInstance * 100).toString()]) }; export function get() {     tarantool.call(conn, \"box.space.test:select\", [exec.vu.iterationInInstance + exec.vu.idInInstance * 100]) }; export function del() {     tarantool.call(conn, \"box.space.test:delete\", [exec.vu.iterationInInstance + exec.vu.idInInstance * 100])   }; <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p><em>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 set_keys, get_keys, del_keys \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/em>\u00a0<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432<\/h3>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">26813<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">33250<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30873<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.14ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">122.3\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">60.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.85ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">89.51\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.58ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">71.09ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.69ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.85ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">114.76\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">61.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.38ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.84ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"1c\" id=\"1c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25583<\/p>\n<\/td>\n<td>\n<p align=\"left\">26813<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31967<\/p>\n<\/td>\n<td>\n<p align=\"left\">33250<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31355<\/p>\n<\/td>\n<td>\n<p align=\"left\">30873<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<p><a class=\"anchor\" name=\"1con\" id=\"1con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.19ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.94ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.93ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.37ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.18ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.72ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.7ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.95ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.29ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.35ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 1<\/h3>\n<p>Tarantool \u0447\u0443\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0447\u0442\u0435\u043d\u0438\u044f, \u0430 Redis \u2014 \u0432 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 2. \u0421\u0447\u0435\u0442\u0447\u0438\u043a<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c 100 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a. <\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c INCR\/DECR \u0432 Redis \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 update \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 Tarantool.<\/p>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 incr \u0438 decr \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p><strong>Redis:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/p>\n<p><strong>Tarantool:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f.<br \/>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043f\u0435\u0439\u0441 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 (key string, value integer).<\/p>\n<p><a class=\"anchor\" name=\"2r\" id=\"2r\"><\/a><\/p>\n<h3>? Redis<\/h3>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043a6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import redis from \"k6\/experimental\/redis\"; import exec from \"k6\/execution\";   export const options = {    discardResponseBodies: true,    scenarios: {        test_incr: {            executor: \"constant-vus\",            exec: \"incr\",            vus: 50,            duration: \"120s\",        },        test_decr: {            executor: \"constant-vus\",            exec: \"decr\",            vus: 50,            duration: \"120s\",        },    }, }; const client = new redis.Client({    addrs: new Array(\"host:port\"),    password: \"\",    db: 0, }); export function incr() {    client.incr(\"id\"+exec.vu.idInInstance); } export function decr() {    client.decr(\"id\"+exec.vu.idInInstance); }   <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">38985<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.53ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">46.41\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.57ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">78.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.27ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.92ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"2t\" id=\"2t\"><\/a><\/p>\n<h3>? Tarantool<\/h3>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 tarantool<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">box.cfg{listen=\"127.0.0.1:3301\"} box.schema.space.create(\"test\") box.space.test:format({{name=\"name\", type=\"string\"}, {name=\"value\", type=\"integer\"}}) box.space.test:create_index(\"primary\", {parts={\"name\"}})<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043a6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import tarantool from \"k6\/x\/tarantool\"; import exec from 'k6\/execution';     const conn = tarantool.connect(\"host:port\"); export const options = {    discardResponseBodies: true,    scenarios: {        incr: {            executor: 'constant-vus',            exec: 'decr',            vus: 50,            duration: '120s',        },        decr: {            executor: 'constant-vus',            exec: 'decr',            vus: 50,            duration: '120s',        },    }, }; export function setup() {    for (let i = 1; i &lt; 51; i++) {        tarantool.replace(conn, \"test\", [i.toString(), 0]);      }     }; export function incr() {    tarantool.call(conn, \"box.space.test:update\", [exec.vu.idInInstance.toString(), [[\"+\", 2, 1]]]) } export function decr() {    tarantool.call(conn, \"box.space.test:update\", [exec.vu.idInInstance.toString(), [[\"-\", 2, 1]]])    } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0438\u0439 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">32552<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.06ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">100.01\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">72.29ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.26ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.05ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"2c\" id=\"2c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">38985<\/p>\n<\/td>\n<td>\n<p align=\"left\">32552<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<p><a class=\"anchor\" name=\"2con\" id=\"2con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\"><\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.57ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.27ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.92ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.26ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.05ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 2<\/h3>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0442\u0435\u0441\u0442\u0430 Tarantool \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0443\u043f\u0438\u043b Redis.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<hr\/>\n<h3>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 3. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b SADD\/SMEMBERS \u0432 Redis \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 Tarantool.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p><strong>Redis:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/p>\n<p><strong>Tarantool:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f.<br \/>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043f\u0435\u0439\u0441 kv \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 (key string, element string)<\/p>\n<p><a class=\"anchor\" name=\"3r\" id=\"3r\"><\/a><\/p>\n<h3>? Redis<\/h3>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043a6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import redis from 'k6\/experimental\/redis'; import exec from 'k6\/execution';   export const options = {     discardResponseBodies: true,     scenarios: {         test_add: {             executor: 'constant-vus',             exec: 'add',             vus: 100,             duration: '120s',         },         test_mem: {             executor: 'constant-vus',             exec: 'members',             vus: 100,             duration: '120s',         },     }, }; const client = new redis.Client({     addrs: new Array('host:port'),     password: '',     db: 0, });   export function add() {     client.sadd('test'+exec.vu.idInInstance*1000, (exec.vu.iterationInInstance + exec.vu.idInInstance * 100).toString()); } export function members() {     client.smembers('test'+exec.vu.idInInstance*1000); } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.2ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">83.29\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.44ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">142.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.5ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">13.87ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.33ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">63.02\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">121.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.18ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.63ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">22983<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">29242<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"3t\" id=\"3t\"><\/a><\/p>\n<h2> ? Tarantool<\/h2>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">box.cfg{listen=\"127.0.0.1:3301\"} box.schema.space.create(\"test\") box.schema.sequence.create('S',{min=1, start=1}) box.space.test:format({{name=\"id\", type=\"unsigned\"},{name=\"name\", type=\"string\"}, {name=\"value\", type=\"string\"}}) box.space.test:create_index(\"primary\", {sequence='S', parts={\"id\"}}) box.space.test:create_index(\"name\", {unique=false, parts={\"name\"}})<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043a6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import tarantool from \"k6\/x\/tarantool\"; import exec from 'k6\/execution';   const conn = tarantool.connect(\u201chost:port\u201d); export const options = {     discardResponseBodies: true,     scenarios: {         add: {             executor: 'constant-vus',             exec: 'add',             vus: 100,             duration: '120s',         },         members: {             executor: 'constant-vus',             exec: 'members',             vus: 100,             duration: '120s',         },     }, };   export function add() {     tarantool.insert(conn, \"test\", [null, (exec.vu.idInInstance*1000).toString(), (exec.vu.iterationInInstance + exec.vu.idInInstance * 100).toString()]) } export function members() {     tarantool.call(conn, \"box.space.test.index.name:select\", [(exec.vu.idInInstance*1000).toString()]) } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">22355<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">29766<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.45ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">126.08\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.47ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">73.07ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.93ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.73ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">104.19\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.71ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">73.04ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.98ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.33ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"3c\" id=\"3c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">22983<\/p>\n<\/td>\n<td>\n<p align=\"left\">22355<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">29242<\/p>\n<\/td>\n<td>\n<p align=\"left\">29766<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c iterations_duration<\/h3>\n<p><a class=\"anchor\" name=\"3con\" id=\"3con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\"><\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.44ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.5ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">13.87ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.47ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.93ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.73ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.18ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.63ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.71ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.98ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.33ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 3<\/h3>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438 Tarantool \u0438 Redis \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u0441\u0435\u0431\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e.<\/p>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 4. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c<\/h2>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1, \u043c\u0435\u043d\u044f\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0411\u0414. \u0426\u0435\u043b\u044c \u0442\u0435\u0441\u0442\u0430 \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c Redis vs Tarantool.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p><strong>Redis:<\/strong><br \/>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 appendfsync (no, everysecond, always)<\/p>\n<p><strong>Tarantool:<\/strong><br \/>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 wal_mode (none, write, fsync)<\/p>\n<p><a class=\"anchor\" name=\"4r1\" id=\"4r1\"><\/a><\/p>\n<h3>? Redis appendfsync: everysec<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">75.47\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.19ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132.3ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.36ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.96ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">52.6\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132.48ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.37ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.09ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">55.94\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">115.23ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.95ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25583<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31967<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31355<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4r2\" id=\"4r2\"><\/a><\/p>\n<h3>? Redis appendfsync: Always<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.07ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">79.09\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.35ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">135.39ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">13.28ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.22ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">60.93\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.93ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">129.49ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.32ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.13ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">57.96\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.88ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">113.63ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.8ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.02ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">23773<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">29467<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30741<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4r3\" id=\"4r3\"><\/a><\/p>\n<h3>? Redis appendfsync: No<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.94ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">76.25\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.26ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">155.91ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.81ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.95ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.14ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">63.19\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">122.84ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.81ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.98ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.73ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">54.07\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.63ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">110.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.8ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.46ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">24541<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31999<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">35179<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4t1\" id=\"4t1\"><\/a><\/p>\n<h3>? Tarantool wal_mode Write<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">117.33\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.94ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">53.07ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.93ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.7ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">86.38\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.18ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">45.22ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.72ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.7ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.93ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">108.13\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">70.4ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.29ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.35ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">26813<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">33250<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30873<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4t2\" id=\"4t2\"><\/a><\/p>\n<h3>? Tarantool wal_mode: None<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.82ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">76.2\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.2ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">41.77ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.85ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.36ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.28ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">95.29\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.66ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">57.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.9ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.23ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.9ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">87.79\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">56.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.25ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">26335<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">33017<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">34273<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4t3\" id=\"4t3\"><\/a><\/p>\n<h3>? Tarantool wal_mode: Fsync<\/h3>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25055<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31342<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">28758<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.14ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">122.3\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">60.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.85ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">89.51\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.58ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">71.09ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.69ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.85ms\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">114.76\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">61.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.38ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.84ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4c\" id=\"4c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\"><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>appendfsync: everysec<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>wal_mode Write<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25583<\/p>\n<\/td>\n<td>\n<p align=\"left\">26813<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31967<\/p>\n<\/td>\n<td>\n<p align=\"left\">33250<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31355<\/p>\n<\/td>\n<td>\n<p align=\"left\">30873<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>appendfsync: no<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>wal_mode: None<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">24541<\/p>\n<\/td>\n<td>\n<p align=\"left\">26335<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31999<\/p>\n<\/td>\n<td>\n<p align=\"left\">33017<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">35179<\/p>\n<\/td>\n<td>\n<p align=\"left\">34273<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>appendfsync: Always<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>wal_mode: Fsync<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">23773<\/p>\n<\/td>\n<td>\n<p align=\"left\">25055<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">29467<\/p>\n<\/td>\n<td>\n<p align=\"left\">31342<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30741<\/p>\n<\/td>\n<td>\n<p align=\"left\">28758<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c iterations_duration<\/h2>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"3\"><\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">\n<p align=\"left\"><strong>appendfsync: everysec<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>wal_mode: write<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.19ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.94ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.93ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.37ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.18ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.72ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.7ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.95ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.29ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.35ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>appendfsync: no<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>wal_mode: None<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.26ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.81ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.95ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.28ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.85ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.36ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.81ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.98ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.66ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.9ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.23ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.63ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.8ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.25ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>appendfsync: always<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>wal_mode: fsync<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.35ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">13.28ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.85ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.93ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.58ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.69ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.85ms\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.88ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.8ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.02ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.38ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.84ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"4con\" id=\"4con\"><\/a><\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e <\/h3>\n<p>\u041f\u0440\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 (appendfsync always \u0432 redis \u0438 wal_mode fsync \u0432 tarantool) tarantool \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043b\u0443\u0447\u0448\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 5. \u0412\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/h2>\n<p>KV \u0432 tarantool (id, value) \u0441\u043e \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043d\u0430 value.<\/p>\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 Redis \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c Redisearch, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 Ubuntu \u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 loadmodule<\/p>\n<p><a class=\"anchor\" name=\"5t\" id=\"5t\"><\/a><\/p>\n<h3>? Tarantool<\/h3>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">box.cfg{listen=\"127.0.0.1:3301\"} box.schema.space.create(\"test\") box.space.test:format({{name=\"id\", type=\"unsigned\"}, {name=\"value\", type=\"string\"}}) box.space.test:create_index(\"primary\", {parts={\"id\"}}) box.space.test:create_index(\"secondary\", {parts={\"value\"}})<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.43ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">112.54\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.68ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">48.15ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.63ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.96ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Search<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.73ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">82.87\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">56.86ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.7ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3> \u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">29031<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">36382<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"5r\" id=\"5r\"><\/a><\/p>\n<h3>? Redis<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.66ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">70.83\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.26ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">89.86ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.27ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.15ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Search<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.94ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">62.1\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.86ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">83.79ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.41ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">27122<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">33801<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"5c\" id=\"5c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">27122<\/p>\n<\/td>\n<td>\n<p align=\"left\">29031<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Search<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">33801<\/p>\n<\/td>\n<td>\n<p align=\"left\">36382<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c iterations_duration<\/h3>\n<p><a class=\"anchor\" name=\"5con\" id=\"5con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\"><\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.68ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.63ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.96ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.26ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.27ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.15ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.7ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.86ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.41ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 5<\/h3>\n<p>Tarantool \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u044b\u0441\u044f\u0447 rps \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0434\u043b\u044f \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6. \u0412\u043b\u0438\u044f\u043d\u0438\u0435 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h2>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c c\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1, \u043c\u0435\u043d\u044f\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0426\u0435\u043b\u044c \u0442\u0435\u0441\u0442\u0430 \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0411\u0414.<\/p>\n<p>\u041f\u0440\u043e\u0432\u043e\u0434\u0438\u043c 2 \u0442\u0435\u0441\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6.1 Redis \u0441 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 1 \u0443\u0437\u0435\u043b<\/p>\n<\/li>\n<li>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6.2 Tarantool \u0441 master-slave \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 1 \u0443\u0437\u0435\u043b<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"6r\" id=\"6r\"><\/a><\/p>\n<h3>? \u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6.1 Redis master-slave<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.86ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">72.13\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">78.53ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.12ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.68ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.08ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">52.11\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.81ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">64.77ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.65ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.93ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.96ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">50.08\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">72.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.39ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25766<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30689<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">32378<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"6t1\" id=\"6t1\"><\/a><\/p>\n<h3>? 6.2 Tnt-master-slave<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.35ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">129.16\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">72.58ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.61ms\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.27ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">84.55\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.66ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">41ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.95ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.15ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.45ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">99.55\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">89.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.53ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">22883<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30452<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">28830<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"6c\" id=\"6c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\"><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0420\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 1 \u0443\u0437\u0435\u043b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0420\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 1 \u0443\u0437\u0435\u043b (master-slave)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25766<\/p>\n<\/td>\n<td>\n<p align=\"left\">22883<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30689<\/p>\n<\/td>\n<td>\n<p align=\"left\">30452<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">32378<\/p>\n<\/td>\n<td>\n<p align=\"left\">28830<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c iterations_duration<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"3\"><\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">\n<p align=\"left\"><strong>\u0420\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 1 \u0443\u0437\u0435\u043b<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>\u0420\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 1 \u0443\u0437\u0435\u043b (master-slave)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.12ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.68ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.61ms\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.81ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.65ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.93ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.2ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.67ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.46ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.39ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.53ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"6con\" id=\"6con\"><\/a><\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u00a0\u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 6<\/h3>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0442\u0435\u0441\u0442\u0430 \u043f\u0440\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 master-slave Redis \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u043e\u043c \u043e\u0431\u043e\u0448\u0451\u043b Tarantool \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 7. \u041a\u043b\u0430\u0441\u0442\u0435\u0440<\/h2>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0431\u044b\u043b\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b Redis \u0438 Tarantool \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438: 3 \u0448\u0430\u0440\u0434\u0430, \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0440\u0434\u0435 1 \u043c\u0430\u0441\u0442\u0435\u0440 \u0438 2 \u0440\u0435\u043f\u043b\u0438\u043a\u0438.\u00a0<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d: Ubuntu, 4 cpu, 8 gb RAM, 10 gb ssd. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u0442\u0435\u0441\u0442\u044b \u0438\u0437 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f 1.<\/p>\n<p><a class=\"anchor\" name=\"7r\" id=\"7r\"><\/a><\/p>\n<h3>? \u041a\u043b\u0430\u0441\u0442\u0435\u0440 Redis<\/h3>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">231.06\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">220.89ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.5ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.62ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.73ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">223.4\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">124.6ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.05ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.61ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">214.5\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.91ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">105.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.06ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.89ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31390<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">37245<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">38158<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"7t\" id=\"7t\"><\/a><\/p>\n<h3>? \u041a\u043b\u0430\u0441\u0442\u0435\u0440 Tarantool<\/h3>\n<p><strong>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e44\/2b7\/61d\/e442b761d49bf175bdc377e2e1d8632a.png\" alt=\"\" title=\"\" width=\"1367\" height=\"786\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e44\/2b7\/61d\/e442b761d49bf175bdc377e2e1d8632a.png\"\/><\/figure>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u043e\u043b\u044c, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">function del(id)    local result, err = crud.delete('test', id)    if err ~= nil then        return err    end    return result end function add(id, value)    local result, err = crud.insert('test', {id, value})    if err ~= nil then        return err    end    return result end    function get(id)    local result, err = crud.get('test', id)    if err ~= nil then        return err    end    return result end <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c crud.<\/p>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">5.13ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">636.41\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.35ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">75.47ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">399.47\u00b5s\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.4ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">39.65ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.16ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.69ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.22ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">548.83\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.65ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">73.67ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.5ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.73ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">19436<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">24888<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">23627<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"7c\" id=\"7c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31390<\/p>\n<\/td>\n<td>\n<p align=\"left\">19436<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">37245<\/p>\n<\/td>\n<td>\n<p align=\"left\">24888<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">38158<\/p>\n<\/td>\n<td>\n<p align=\"left\">23627<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c iterations_duration<\/h3>\n<p><a class=\"anchor\" name=\"7con\" id=\"7con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\">\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.5ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.35ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">11ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.01ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.05ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.4ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.16ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.69ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.91ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.06ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.89ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.65ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.5ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.73ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 7<\/h3>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Redis \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p><a class=\"anchor\" name=\"ending\" id=\"ending\"><\/a><\/p>\n<hr\/>\n<h2>\u041e\u0431\u0449\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0438\u0437 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<h3>Redis<\/h3>\n<p>\u0418\u043c\u0435\u0435\u0442 \u0432\u0430\u0436\u043d\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430. \u041e\u043d \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0435\u0435 \u0438 \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438. \u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Redis, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0443 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c Redis \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438 \u043e\u043d \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0440\u043e\u043b\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043e\u043d \u043b\u0438\u0448\u044c \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0443\u043f\u0438\u043b Tarantool. <\/p>\n<h3>Tarantool<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043d\u0438\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0411\u0414, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f \u043a Tarantool. \u041e\u043d \u0431\u043b\u0438\u0436\u0435 \u043a \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 SQL. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043e\u043d \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u0443\u044e \u0441 K-V \u0411\u0414 \u0432\u0440\u043e\u0434\u0435 Redis.<\/p>\n<p>Tarantool \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 1, 4, 5: \u0443 \u043d\u0435\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u0432\u0435\u0442\u0430, \u043e\u043d \u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e RPS, \u0432 \u043d\u0435\u043c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b. \u0412 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 3 Tarantool \u0438 Redis \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0438 \u0441\u0435\u0431\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e.<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 Tarantool:<\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 key-value \u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0411\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h4> 1. Tarantool \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 key-value \u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432<\/h4>\n<p>\u0412\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 Tarantool \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043a\u043b\u044e\u0447\u0430\u043c, \u043d\u043e \u0438 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c.\u00a0<\/p>\n<p><em>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <\/em>\u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u0438\u0434\u0430 \u00ab\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u2014 \u0424\u0418\u041e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u00bb, \u0433\u0434\u0435 \u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u043e\u043c.\u00a0<\/p>\n<ul>\n<li>\n<p>\u0412 Tarantool \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443, \u043d\u043e \u0438 \u043f\u043e \u0424\u0418\u041e, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>\u0412 Redis \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c RediSearch. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0443\u043f\u0430\u0442\u044c Tarantool<\/p>\n<\/li>\n<\/ul>\n<h4>2. Tarantool \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 in-memory \u0431\u0430\u0437\u0430\u0445<\/h4>\n<p>Tarantool \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0441\u0431\u0440\u043e\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0434\u0438\u0441\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 wal_mode=write \u0438 wal_mode=fsync \u2014 \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 Redis \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c appendfsync=everysec \u0438 appendfsync=always \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>\u00a0<br \/><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e:<\/strong> \u044d\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u044b \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f. \u0412\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. <br \/>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u2014 \u0432 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0430\u0439\u043b. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0433\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u00a0 \u0441 wal_mode=fsync, Tarantool \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443 Redis. \u042d\u0442\u043e \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0440\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h2>\u0421\u043e\u0432\u0441\u0435\u043c \u043a\u0440\u0430\u0442\u043a\u043e<\/h2>\n<p>Tarantool \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043b\u0443\u0447\u0448\u0435\u0435 \u0438\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 Redis. Tarantool \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0442\u0435\u0441\u0442\u043e\u0432 \u0434\u043b\u044f \u041a6 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/ktsstudio\/tarantool-k6-load-test-scenarios%5C\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a>.<\/p>\n<\/p>\n<\/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\/730518\/\"> https:\/\/habr.com\/ru\/articles\/730518\/<\/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-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441, \u044f \u0431\u044d\u043a\u0435\u043d\u0434-\u0442\u0438\u043c\u043b\u0438\u0434 \u0432 <a href=\"https:\/\/kts.studio\/\"><u>KTS<\/u><\/a>.<\/p>\n<p>Tarantool \u0438 Redis \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u2014 \u0434\u0432\u0430 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432 \u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c, \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438.\u00a0<\/p>\n<p>\u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432 \u043d\u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0436\u0435\u0433\u043e. \u0418 Tarantool, \u0438 Redis \u2014 \u00ab\u043e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435\u00bb \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435 \u0432\u0437\u044f\u0442\u043e \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u0442\u044c \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438, \u0438 \u043f\u043e\u0442\u043e\u043a\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043f\u043e\u0442\u043e\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c. \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0430 \u044d\u0442\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u2014 in-memory \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0431\u0440\u0430\u0442\u044c \u0432 \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0439 vinyl \u0434\u0432\u0438\u0436\u043e\u043a \u0432 Tarantool.\u00a0<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c: \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c Tarantool \u043a\u0430\u043a \u0437\u0430\u043c\u0435\u043d\u0443 Redis? \u041f\u0440\u043e\u0441\u044f\u0434\u0435\u0442 \u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437-\u0437\u0430 \u0432\u0441\u0435\u0445 \u00ab\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445\u00bb \u0444\u0438\u0447\u0435\u0439 \u0432 Tarantool? \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u043b\u0438 \u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439?<\/p>\n<p>\u041c\u044b \u0432\u0437\u044f\u043b\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Redis \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u0436\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043d\u0430 Tarantool, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 K-V \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439: \u0434\u043b\u044f Tarantool \u044d\u0442\u043e Tarantool Cartridge, \u0434\u043b\u044f Redis \u2014 Redis Cluster.<\/p>\n<p>\u0412\u044b\u0432\u043e\u0434\u044b \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"#ending\">\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/a><\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/k6.io\/\"><u>Grafana K6<\/u><\/a> \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043d\u0430 JavaScript \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u0438\u043c\u0435\u0435\u0442 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a HTTP, WebSocket, gRPC \u0438 \u0442.\u0434.\u00a0<\/p>\n<p>Grafana K6 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0442\u0430\u043a \u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Grafana. \u0423\u0434\u043e\u0431\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e K6 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u041a6. \u0422\u0430\u043a, \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u041a6 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 Tarantool, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 <a href=\"https:\/\/github.com\/tarantool\/xk6-tarantool\"><u>\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435<\/u><\/a>. \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u041a6 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0417\u0430 \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 7 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"#1\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1: key-value c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 set\/get\/delete<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#1r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#2\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 2: \u0441\u0447\u0435\u0442\u0447\u0438\u043a c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 incr\/decr<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#2r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#3\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 3: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#3r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#4\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 4: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#4r1\">Redis appendfsync: everysec<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4r2\">Redis appendfsync: Always<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4r3\">Redis appendfsync: No<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4t1\">Tarantool wal_mode Write<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4t2\">Tarantool wal_mode: None<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4t3\">Tarantool wal_mode: Fsync<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#5\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 5: \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#5r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#6\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6: \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#6r\">Redis master-slave<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6t1\">Tnt master-slave<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#7\"><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 7: \u043a\u043b\u0430\u0441\u0442\u0435\u0440<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#7r\">Redis<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7t\">Tarantool<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7c\">\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7con\">\u0412\u044b\u0432\u043e\u0434<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#ending\"><strong>\u041e\u0431\u0449\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0438\u0437 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 1-5<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438: Ubuntu, 4CPU, 16GB RAM, 30GB SSD.<br \/><strong>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 6<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u043d\u0430 \u0434\u0432\u0443\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 Ubuntu, 4CPU 16GB RAM, 30GB SSD.<br \/><strong>\u0412\u0441\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 100 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e 120 \u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1. \u041f\u0440\u043e\u0441\u0442\u043e\u0439 Key-Value\u00a0<\/h2>\n<p>\u0411\u0435\u0440\u0435\u043c 3 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: <\/p>\n<ul>\n<li>\n<p>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0443<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c 100 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u041a\u043b\u044e\u0447\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f + \u043d\u043e\u043c\u0435\u0440 \u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0440\u0430\u0432\u043d\u043e\u0435 \u043a\u043b\u044e\u0447\u0443.<\/p>\n<p><strong>Redis:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/p>\n<p><strong>Tarantool:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<br \/>\u0421\u043f\u0435\u0439\u0441 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 (key string, value string)<\/p>\n<p><a class=\"anchor\" name=\"1r\" id=\"1r\"><\/a><\/p>\n<h3>? Redis<\/h3>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 k6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import redis from 'k6\/experimental\/redis'; import exec from 'k6\/execution';   export const options = {     discardResponseBodies: true,     scenarios: {         test: {             executor: 'constant-vus',             exec: 'set_keys',             vus: 100,             duration: '120s',         },         test: {             executor: 'constant-vus',             exec: 'get_keys',             vus: 100,             duration: '120s',         },         test: {             executor: 'constant-vus',             exec: 'del_keys',             vus: 100,             duration: '120s',         },     }, }; const client = new redis.Client({     addrs: new Array('host:port\u2019),     password: '',     db: 0, });   export function set_keys() {     client.set(exec.vu.iterationInInstance + exec.vu.idInInstance * 100, exec.vu.iterationInInstance + exec.vu.idInInstance * 100); } export function get_keys() {     client.get(exec.vu.iterationInInstance + exec.vu.idInInstance * 100); } export function del_keys() {     client.del(exec.vu.iterationInInstance + exec.vu.idInInstance * 100); } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p><em>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 set_keys, get_keys, del_keys \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/em>\u00a0<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432<\/h3>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25583<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31967<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31355<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">75.47\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.19ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132.3ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.36ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.96ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">52.6\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132.48ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.37ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.09ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">55.94\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">115.23ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.95ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"1t\" id=\"1t\"><\/a><\/p>\n<h3>? Tarantool<\/h3>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432 \u0422\u0430\u0440\u0430\u043d\u0442\u0443\u043b\u0435 \u0432\u0438\u0434\u0430 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447 \u2013 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2013 \u0441\u0442\u0440\u043e\u043a\u0430. \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043a\u043b\u044e\u0447\u0443 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">box.cfg{listen=\"127.0.0.1:3301\"} box.schema.space.create(\"test\") box.space.test:format({{name=\"name\", type=\"unsigned\"}, {name=\"value\", type=\"string\"}}) box.space.test:create_index(\"primary\", {parts={\"name\"}})<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 k6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import tarantool from \"k6\/x\/tarantool\"; import exec from 'k6\/execution';   const conn = tarantool.connect(\u201chost:port\u201d); export const options = {     discardResponseBodies: true,     scenarios: {         set: {             executor: 'constant-vus',             exec: 'set',             vus: 100,             duration: '120s',         },         get: {             executor: 'constant-vus',             exec: 'get',             vus: 100,             duration: '120s',         },         del: {             executor: 'constant-vus',             exec: 'del',             vus: 100,             duration: '120s',         },     }, };   export function set() {     tarantool.replace(conn, \"test\", [exec.vu.iterationInInstance + exec.vu.idInInstance * 100, (exec.vu.iterationInInstance + exec.vu.idInInstance * 100).toString()]) }; export function get() {     tarantool.call(conn, \"box.space.test:select\", [exec.vu.iterationInInstance + exec.vu.idInInstance * 100]) }; export function del() {     tarantool.call(conn, \"box.space.test:delete\", [exec.vu.iterationInInstance + exec.vu.idInInstance * 100])   }; <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p><em>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 set_keys, get_keys, del_keys \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/em>\u00a0<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432<\/h3>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">26813<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">33250<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">30873<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">4.14ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">122.3\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.21ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">60.34ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.31ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.85ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.17ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">89.51\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.58ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">71.09ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.69ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.85ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">114.76\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.74ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">61.46ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.38ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.84ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"1c\" id=\"1c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25583<\/p>\n<\/td>\n<td>\n<p align=\"left\">26813<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31967<\/p>\n<\/td>\n<td>\n<p align=\"left\">33250<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">31355<\/p>\n<\/td>\n<td>\n<p align=\"left\">30873<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<p><a class=\"anchor\" name=\"1con\" id=\"1con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\">\n<p align=\"left\"><strong>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Set_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.19ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.94ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.93ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Get_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.76ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.36ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.37ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.18ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.72ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.7ms<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Del_keys<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.83ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.62ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.95ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.32ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.29ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.35ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 1<\/h3>\n<p>Tarantool \u0447\u0443\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0447\u0442\u0435\u043d\u0438\u044f, \u0430 Redis \u2014 \u0432 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<hr\/>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 2. \u0421\u0447\u0435\u0442\u0447\u0438\u043a<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c 100 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a. <\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c INCR\/DECR \u0432 Redis \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 update \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 Tarantool.<\/p>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 incr \u0438 decr \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p><strong>Redis:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/p>\n<p><strong>Tarantool:<\/strong><br \/>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f.<br \/>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043f\u0435\u0439\u0441 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 (key string, value integer).<\/p>\n<p><a class=\"anchor\" name=\"2r\" id=\"2r\"><\/a><\/p>\n<h3>? Redis<\/h3>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043a6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import redis from \"k6\/experimental\/redis\"; import exec from \"k6\/execution\";   export const options = {    discardResponseBodies: true,    scenarios: {        test_incr: {            executor: \"constant-vus\",            exec: \"incr\",            vus: 50,            duration: \"120s\",        },        test_decr: {            executor: \"constant-vus\",            exec: \"decr\",            vus: 50,            duration: \"120s\",        },    }, }; const client = new redis.Client({    addrs: new Array(\"host:port\"),    password: \"\",    db: 0, }); export function incr() {    client.incr(\"id\"+exec.vu.idInInstance); } export function decr() {    client.decr(\"id\"+exec.vu.idInInstance); }   <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">38985<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.53ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">46.41\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.57ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">78.78ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.27ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.92ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"2t\" id=\"2t\"><\/a><\/p>\n<h3>? Tarantool<\/h3>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 tarantool<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">box.cfg{listen=\"127.0.0.1:3301\"} box.schema.space.create(\"test\") box.space.test:format({{name=\"name\", type=\"string\"}, {name=\"value\", type=\"integer\"}}) box.space.test:create_index(\"primary\", {parts={\"name\"}})<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043a6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">import tarantool from \"k6\/x\/tarantool\"; import exec from 'k6\/execution';     const conn = tarantool.connect(\"host:port\"); export const options = {    discardResponseBodies: true,    scenarios: {        incr: {            executor: 'constant-vus',            exec: 'decr',            vus: 50,            duration: '120s',        },        decr: {            executor: 'constant-vus',            exec: 'decr',            vus: 50,            duration: '120s',        },    }, }; export function setup() {    for (let i = 1; i &lt; 51; i++) {        tarantool.replace(conn, \"test\", [i.toString(), 0]);      }     }; export function incr() {    tarantool.call(conn, \"box.space.test:update\", [exec.vu.idInInstance.toString(), [[\"+\", 2, 1]]]) } export function decr() {    tarantool.call(conn, \"box.space.test:update\", [exec.vu.idInInstance.toString(), [[\"-\", 2, 1]]])    } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0421\u0440\u0435\u0434\u043d\u0438\u0439 RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">32552<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>avg<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>min<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>max<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.06ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">100.01\u00b5s<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">72.29ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.26ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.05ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><a class=\"anchor\" name=\"2c\" id=\"2c\"><\/a><\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f\u00a0 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e RPS<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">38985<\/p>\n<\/td>\n<td>\n<p align=\"left\">32552<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e \u043c\u0435\u0434\u0438\u0430\u043d\u0435 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044f\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/h3>\n<p><a class=\"anchor\" name=\"2con\" id=\"2con\"><\/a><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\"><\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Redis<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\"><strong>Tarantool<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>med<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(90)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>p(95)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>INCR\/DECR<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.57ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.27ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.92ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">2.51ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">5.26ms\u00a0<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.05ms<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043f\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 2<\/h3>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0442\u0435\u0441\u0442\u0430 Tarantool \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0443\u043f\u0438\u043b Redis.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<hr\/>\n<h3>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 3. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-384579","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/384579","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=384579"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/384579\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=384579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=384579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=384579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}