{"id":298943,"date":"2020-02-19T15:00:32","date_gmt":"2020-02-19T15:00:32","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=298943"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=298943","title":{"rendered":"\u041e\u0434\u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c Redis \u0432 K8s \u0438 \u043c\u0438\u043d\u0438-\u043e\u0431\u0437\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u043e\u0439 \u0411\u0414"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/480722\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p9\/cj\/wt\/p9cjwtwfxea35sztyast6f7isao.png\"><\/p>\n<p>  \u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 in-memory-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f TTL? \u0410 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0433\u043e, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432 Kubernetes? \u0410 \u0435\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a Redis \u043c\u044b \u0432\u043d\u0435\u0441\u0451\u043c \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u0438 \u0431\u0435\u0437\u043e\u0431\u0438\u0434\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435?.. \u041e\u0442\u0432\u0435\u0447\u0430\u044f \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u044b \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0439\u0442\u0438 \u043f\u0443\u0442\u0438 \u043a \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0411\u0414 \u0432 Redis.<\/p>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043a\u0435\u0439\u0441<\/h2>\n<p>  Redis \u0443 \u043d\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\">\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 \u043e\u0442 Spotahome<\/a>. \u041f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443, \u044d\u0442\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0445\u043e\u0442\u044f \u0438 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b \u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435.<a name=\"habracut\"><\/a><\/p>\n<p>  \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 Redis \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\/blob\/master\/docs\/logic.md\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>. \u041f\u043e \u0441\u0443\u0442\u0438 \u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 <i>Redis failover<\/i> (\u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 Redis) \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430 <code>RedisFailover<\/code>. \u042d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437:<\/p>\n<ul>\n<li> ConfigMap\u2019\u043e\u0432 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 Redis,<\/li>\n<li> StatefulSet\u2019\u043e\u0432 \u0441 \u0441\u0430\u043c\u0438\u043c\u0438 Redis,<\/li>\n<li> Deployment\u2019\u0430 \u0438\u0437 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u043f\u043b\u0438\u043a Sentinel.<\/li>\n<\/ul>\n<p>  \u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0435 <code>RedisFailover<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442:<\/p>\n<ul>\n<li> \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043f\u043b\u0438\u043a, \u0442\u0430\u043a \u0438 requests\/limits;<\/li>\n<li> \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 pod\u2019\u043e\u0432 <i>(<a href=\"https:\/\/github.com\/spotahome\/redis-operator\/blob\/master\/example\/redisfailover\/custom-config.yaml\">\u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/a>)<\/i>;<\/li>\n<li> \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0435 PVC, \u0447\u0442\u043e\u0431 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f <i>Redis failovers<\/i>, \u043d\u043e \u0438 \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <i>(<a href=\"https:\/\/github.com\/spotahome\/redis-operator\/blob\/master\/example\/redisfailover\/persistent-storage-no-pvc-deletion.yaml\">\u043f\u0440\u0438\u043c\u0435\u0440<\/a>)<\/i>;<\/li>\n<li> \u0434\u0430 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438\u0437-\u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Redis <i>(<a href=\"https:\/\/github.com\/spotahome\/redis-operator\/blob\/master\/example\/redisfailover\/security-context.yaml\">\u043f\u0440\u0438\u043c\u0435\u0440<\/a>)<\/i>.<\/li>\n<\/ul>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 <code>RedisFailover<\/code>, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 <i>Redis failovers<\/i>, \u043a\u0430\u043a\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e.<\/p>\n<p>  <i><b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b>: \u0422\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0441\u0432\u044b\u043a\u0441\u044f \u0441 \u043f\u043e\u043d\u044f\u0442\u0438\u0435\u043c Kubernetes-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438\/\u0438\u043b\u0438 \u043a \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0441\u044f \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u0434\u043b\u044f Redis failover \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0435 <code>RedisFailover<\/code>, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/326414\/\">\u044d\u0442\u0443 \u0432\u0432\u043e\u0434\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a>.<\/i><\/p>\n<p>  \u0412 \u043e\u0434\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0434\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 <i>(\u0440\u0435\u0447\u044c \u043f\u0440\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0432 \u0440\u0443\u043d\u0435\u0442\u0435 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442)<\/i>, Redis \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a in-memory data store \u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043a\u044d\u0448\u0430, \u043d\u043e \u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 stateful-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 Redis \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u0437 \u00ab\u0440\u0435\u0434\u0438\u0441\u043e\u043a\u00bb \u0432 \u00ab\u0442\u044b\u043a\u0432\u044b\u00bb. \u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u0435\u0435, \u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 .rdb-\u0444\u0430\u0439\u043b\u0430* \u0441\u0430\u043c\u043e\u0433\u043e \u00ab\u0442\u043e\u043b\u0441\u0442\u043e\u0433\u043e\u00bb Redis \u0432 \u043f\u043e\u0434\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b 5 \u0413\u0431.<\/p>\n<p>  <i>* \u0421\u043d\u0430\u043f\u0448\u043e\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 Redis \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u0434\u0432\u0443\u0445 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0432 Redis \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 <a href=\"https:\/\/redis.io\/topics\/persistence\">\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u0434\u0438\u0441\u043a<\/a>.<\/i><\/p>\n<p>  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\/tree\/master\/example\/redisfailover\"><code>RedisFailover<\/code><\/a> \u0441 \u043e\u0434\u043d\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u043e\u0439 Redis. \u0418\u043d\u0441\u0442\u0430\u043d\u0441 \u2014 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0439, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044e\u0449\u0438\u0439 \u043d\u0430 \u043f\u0438\u043a\u0435 (\u0442.\u0435. \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0434\u0438\u0441\u043a) \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 16 \u0413\u0431 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0411\u043e\u043b\u044c\u0448\u0435 \u0440\u0435\u043f\u043b\u0438\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0443\u0437\u043b\u044b.<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c, \u043f\u043e \u043c\u0435\u0440\u0435 \u0440\u043e\u0441\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 Kubernetes, \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0426\u041e\u0414 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u044b. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043f\u043b\u0438\u043a Redis \u0434\u043e \u0434\u0432\u0443\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c \u0411\u0414, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f Redis.<\/p>\n<p>  \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u043f\u043b\u0438\u043a \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c requests \u0438 limits \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438, \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0432 \u0438\u0445 \u0441 22 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0434\u043e 19, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0435 pod\u2019\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 (\u0432\u0435\u0434\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0448\u0430\u043d\u0441 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 pod\u2019\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0437\u043b\u044b). \u0418 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e <i>\u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e<\/i> \u0441 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u043f\u043b\u0438\u043a \u0441\u0442\u0430\u043b\u043e \u0444\u0430\u0442\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0432 \u0431\u044d\u043a\u0430\u043f \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u0431\u044b\u043b \u0432\u044b\u043a\u0430\u0447\u0435\u043d <code>RedisFailover<\/code> \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li> ReplicaSet \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0441\u044f \u0434\u043e \u0434\u0432\u0443\u0445;<\/li>\n<li> \u043d\u043e\u0432\u044b\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 \u0441\u0442\u0430\u043b slave\u2019\u043e\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f;<\/li>\n<li> \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u0430 readiness-\u043f\u0440\u043e\u0431\u0430 \u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 (\u0442\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 ping!);<\/li>\n<li> \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u0430\u0442 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e pod\u2019\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b;<\/li>\n<li> sentinel&#8217;\u044b \u043c\u0438\u0433\u043e\u043c \u00ab\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0438\u00bb, \u0447\u0442\u043e \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u0443\u0436\u0435 \u0438 \u043d\u0435\u0442 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043b\u0438 \u043c\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043f\u0443\u0441\u0442\u0443\u044e \u0440\u0435\u043f\u043b\u0438\u043a\u0443 (\u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0442\u0435\u0440 \u0435\u0434\u0432\u0430 \u043b\u0438 \u0443\u0441\u043f\u0435\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <code>BGSAVE<\/code>);<\/li>\n<li> \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043a\u0430\u0442\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u043e\u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0430\u0441\u044c \u043a \u043d\u043e\u0432\u043e\u0438\u0441\u043f\u0435\u0447\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u043c\u0430\u0441\u0442\u0435\u0440\u0443; \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043c\u043e\u043b\u043d\u0438\u0435\u043d\u043e\u0441\u043d\u043e \u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u043b\u0430 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/li>\n<\/ul>\n<p>  \u0418\u0442\u043e\u0433 \u043f\u043e\u043d\u044f\u0442\u0435\u043d: \u043a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u0430 (\u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430).<\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u0431\u044b\u043b \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 (\u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u2014 \u0435\u0433\u043e readiness probe), \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\/issues\/205\">issue \u0432 GitHub \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>, \u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438\/\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\/issues\/205#issuecomment-562350538\">\u043e\u0442\u0432\u0435\u0442<\/a> \u0438 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\/releases\/tag\/v1.0.0-rc.3\">\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/a> \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430, \u0441 \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u0435\u0433\u043e.<\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434 \u0442\u0430\u043a\u043e\u0432: <b>\u0431\u0443\u0434\u044c\u0442\u0435 \u0431\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Kubernetes-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/b> \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b! \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u044d\u0442\u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440, Redis-\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0441 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0439 \u043a \u043f\u043e\u0442\u0435\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0435\u043c \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445. \u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 Redis\u2019\u0430 \u0434\u043e \u0434\u0432\u0443\u0445 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043f\u043e\u0442\u0435\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u0430. \u0418, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0431\u043e\u0442 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043a\u043e\u043f\u0438\u044e <code>dump.rbd<\/code>.<\/p>\n<h2>\u0410\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>  \u0414\u0435\u043b\u043e \u043f\u043e\u0448\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435. \u0423\u0432\u0438\u0434\u0435\u0432 \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043a\u0430\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Redis \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432, \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0411\u0414.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c <a href=\"https:\/\/redis.io\/topics\/latency\">latency doctor<\/a> \u2014 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 Redis \u2014 \u0438 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"plaintext\">127.0.0.1:6379&gt; LATENCY doctor Dave, I have observed latency spikes in this Redis instance. You don't mind talking about it, do you Dave? 1. command: 3 latency spikes (average 237ms, mean deviation 19ms, period 67.33 sec). Worst all time event 256ms. I have a few advices for you: - Check your Slow Log to understand what are the commands you are running which are too slow to execute. Please check http:\/\/redis.io\/commands\/slowlog for more information. - Deleting, expiring or evicting (because of maxmemory policy) large objects is a blocking operation. If you have very large objects that are often deleted, expired, or evicted, try to fragment those objects into multiple smaller objects. 127.0.0.1:6379&gt; LATENCY latest 1) 1) &quot;fork&quot;   2) (integer) 1574513316   3) (integer) 308   4) (integer) 308 2) 1) &quot;command&quot;   2) (integer) 1574513311   3) (integer) 214   4) (integer) 256<\/code><\/pre>\n<p>  \u0417\u0430\u043c\u0435\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 <code>fork<\/code> \u0438 <code>command<\/code> \u0432 Redis \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0438\u043a\u0438-\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043f\u0438\u043a\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f rbd \u0438\u0437-\u0437\u0430 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<p>  \u0412 Grafana, \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 Redis, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 Prometheus, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/w_\/b_\/a-\/w_b_a-b85knwanx9zudcu20wnsw.png\"><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bp\/sa\/es\/bpsaestqynquas6miv3jxfuatuq.png\"><\/p>\n<p>  \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438: \u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0430\u0437\u044b, \u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e QPS.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u2014 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u0437 Redis. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u0442\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0411\u0414 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u043d\u0438 \u0436\u0438\u0432\u0443\u0442. \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0438\u0437 Redis, \u0430 \u0447\u0442\u043e \u2014 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u043a\u043e\u0434\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u00ab\u0440\u0430\u0437\u0434\u0443\u0442\u0438\u044f\u00bb \u0431\u0430\u0437\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432\u043e\u043e\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u043c\u0438 Open Source-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0438\u0445 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<h3>1. Redis-memory-analyzer (RMA)<\/h3>\n<p>  <\/p>\n<ul>\n<li> <a href=\"https:\/\/github.com\/gamenet\/redis-memory-analyzer\">GitHub<\/a>.<\/li>\n<\/ul>\n<p>  \u042d\u0442\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 Python, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 PyPI \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pip. \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c (\u043e\u0442 production&#8217;\u0430) \u0443\u0437\u043b\u0435 Kubernetes \u0438\u043b\u0438 \u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 Redis, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432 <code>\/data<\/code> \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0441\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u043e\u043c <code>dump.rdb<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442 \u0442\u0430\u043a (<code>docker-compose.yml<\/code>):<\/p>\n<pre><code class=\"plaintext\">  redis:     container_name: redis     image: redis     ports:       - &quot;127.0.0.1:6379:6379&quot;     volumes:       - .\/:\/data     restart: always<\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0443\u0437\u043b\u0435: <code>rma -f json<\/code> \u2014 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON (\u043d\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430, \u0447\u0435\u043c plain text).<\/p>\n<p>  \u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0439 \u0438 \u0441\u043b\u0435\u0433\u043a\u0430 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u0439 \u0431\u0430\u0437\u044b:<\/p>\n<pre><code class=\"json\">{     &quot;keys&quot;: [         {             &quot;count&quot;: 16236021,             &quot;name&quot;: &quot;The:most:evil:set:*&quot;,             &quot;percent&quot;: &quot;59.24%&quot;,             &quot;type&quot;: &quot;set&quot;         },         {             &quot;count&quot;: 2463064,             &quot;name&quot;: &quot;likes:*:*&quot;,             &quot;percent&quot;: &quot;8.98%&quot;,             &quot;type&quot;: &quot;set&quot;         },         {             &quot;count&quot;: 2422160,             &quot;name&quot;: &quot;notifications:*&quot;,             &quot;percent&quot;: &quot;8.83%&quot;,             &quot;type&quot;: &quot;zset&quot;         },         {             &quot;count&quot;: 2102164,             &quot;name&quot;: &quot;YYY:*&quot;,             &quot;percent&quot;: &quot;7.67%&quot;,             &quot;type&quot;: &quot;set&quot;         },   &quot;nodes&quot;: [         {             &quot;info&quot;: {                 &quot;active_defrag_running&quot;: 0,                 &quot;allocator_active&quot;: 16108007424,                 &quot;allocator_allocated&quot;: 16027311240,                 &quot;allocator_frag_bytes&quot;: 80696184,                 &quot;allocator_frag_ratio&quot;: 1.01,                 &quot;allocator_resident&quot;: 16336216064,                 &quot;allocator_rss_bytes&quot;: 228208640,                 &quot;allocator_rss_ratio&quot;: 1.01,                 &quot;lazyfree_pending_objects&quot;: 0,                 &quot;maxmemory&quot;: 0,                 &quot;maxmemory_human&quot;: &quot;0B&quot;,                 &quot;maxmemory_policy&quot;: &quot;noeviction&quot;,                 &quot;mem_allocator&quot;: &quot;jemalloc-5.1.0&quot;,                 &quot;mem_aof_buffer&quot;: 0,                 &quot;mem_clients_normal&quot;: 49694,                 &quot;mem_clients_slaves&quot;: 0,                 &quot;mem_fragmentation_bytes&quot;: 308401864,                 &quot;mem_fragmentation_ratio&quot;: 1.02,                 &quot;mem_not_counted_for_evict&quot;: 0,                 &quot;mem_replication_backlog&quot;: 0,                 &quot;number_of_cached_scripts&quot;: 18,                 &quot;rss_overhead_bytes&quot;: -606208,                 &quot;rss_overhead_ratio&quot;: 1.0,                 &quot;total_system_memory&quot;: 67552931840,                 &quot;total_system_memory_human&quot;: &quot;62.91G&quot;,                 &quot;used_memory&quot;: 16027240832,                 &quot;used_memory_dataset&quot;: 14661812642,                 &quot;used_memory_dataset_perc&quot;: &quot;91.49%&quot;,                 &quot;used_memory_human&quot;: &quot;14.93G&quot;,                 &quot;used_memory_lua&quot;: 1277952,                 &quot;used_memory_lua_human&quot;: &quot;1.22M&quot;,                 &quot;used_memory_overhead&quot;: 1365428190,                 &quot;used_memory_peak&quot;: 16027625216,                 &quot;used_memory_peak_human&quot;: &quot;14.93G&quot;,                 &quot;used_memory_peak_perc&quot;: &quot;100.00%&quot;,                 &quot;used_memory_rss&quot;: 16335609856,                 &quot;used_memory_rss_human&quot;: &quot;15.21G&quot;,                 &quot;used_memory_scripts&quot;: 35328,                 &quot;used_memory_scripts_human&quot;: &quot;34.50K&quot;,                 &quot;used_memory_startup&quot;: 791264             },             &quot;redisKeySpaceOverhead&quot;: null,             &quot;totalKeys&quot;: 27402900,             &quot;used&quot;: {                 &quot;active-defrag-max-scan-fields&quot;: &quot;1000&quot;,                 &quot;hash-max-ziplist-entries&quot;: &quot;512&quot;,                 &quot;hash-max-ziplist-value&quot;: &quot;64&quot;,                 &quot;list-max-ziplist-size&quot;: &quot;-2&quot;,                 &quot;proto-max-bulk-len&quot;: &quot;536870912&quot;,                 &quot;set-max-intset-entries&quot;: &quot;512&quot;,                 &quot;zset-max-ziplist-entries&quot;: &quot;128&quot;,                 &quot;zset-max-ziplist-value&quot;: &quot;64&quot;             }         }     ],     &quot;stat&quot;: {         &quot;hash&quot;: [             {                 &quot;Avg field count&quot;: 273.9381613257764,                 &quot;Count&quot;: 92806,                 &quot;Encoding&quot;: &quot;ziplist [85.3%] \/ hashtable [14.6%]&quot;,                 &quot;Key mem&quot;: 127070103,                 &quot;Match&quot;: &quot;YYY:*&quot;,                 &quot;Ratio&quot;: 4.11216105916338,                 &quot;Real&quot;: 1374780864,                 &quot;System&quot;: 899529088,                 &quot;TTL Avg.&quot;: -1,                 &quot;TTL Max&quot;: -1,                 &quot;TTL Min&quot;: -1,                 &quot;Total aligned&quot;: 2961700368,                 &quot;Total mem&quot;: 461390876,                 &quot;Value mem&quot;: 334320773             },             {                 &quot;Avg field count&quot;: 16.630734258229428,                 &quot;Count&quot;: 102498,                 &quot;Encoding&quot;: &quot;ziplist [72.0%] \/ hashtable [27.9%]&quot;,                 &quot;Key mem&quot;: 51729452,                 &quot;Match&quot;: &quot;ZZZ:*&quot;,                 &quot;Ratio&quot;: 3.4048548273474686,                 &quot;Real&quot;: 97797080,                 &quot;System&quot;: 63099024,                 &quot;TTL Avg.&quot;: -1,                 &quot;TTL Max&quot;: -1,                 &quot;TTL Min&quot;: -1,                 &quot;Total aligned&quot;: 265209096,                 &quot;Total mem&quot;: 80452286,                 &quot;Value mem&quot;: 28722834             },             { \u2026 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 }<\/code><\/pre>\n<p>  \u0423\u0432\u0438\u0434\u0435\u0432 <code>&quot;totalKeys&quot;: 27402900<\/code> \u0438 <code>{ &quot;count&quot;: 16236021, &quot;name&quot;: &quot;The:most:evil:set:*&quot;, &quot;percent&quot;: &quot;59.24%&quot;, &quot;type&quot;: &quot;set&quot; }<\/code>, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0445\u0432\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0437\u0430 \u0433\u043e\u043b\u043e\u0432\u0443. \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0431\u044b\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430, \u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0443\u0436\u0435 \u0448\u043b\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u043e\u0447\u0438\u0441\u0442\u043a\u0435 \u0432\u0441\u0435\u0445 Redis, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0435\u043d \u043a\u043e\u0434 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u0438 \u043f\u0440\u043e \u043d\u0438\u0445.<\/p>\n<h3>2. Redis-rdb-tools<\/h3>\n<p>  <\/p>\n<ul>\n<li> <a href=\"https:\/\/github.com\/sripathikrishnan\/redis-rdb-tools\">GitHub<\/a>.<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <code>pip install rdbtools python-lzf<\/code>. \u0417\u0430\u0442\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u043e\u0442 \u0436\u0435 \u0441\u0442\u0435\u043d\u0434, \u0447\u0442\u043e \u0434\u043b\u044f RMA, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c:<\/p>\n<pre><code class=\"bash\">rdb -c memory dump.rdb --bytes 100 -f memory.csv<\/code><\/pre>\n<p>  \u2026 \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u0432 \u043e\u0442\u0432\u0435\u0442:<\/p>\n<pre><code class=\"plaintext\">database,type,key,size_in_bytes,encoding,num_elements,len_largest_element,expiry 0,sortedset,notification:user:50242,26844,skiplist,262,8, 0,set,zz:yy:35647,30692,hashtable,760,8, 0,set,pp:646064c2170c2e1d:item:a15671709071,39500,hashtable,319,64, 0,hash,comments:93250,7224,ziplist,353,15, 0,hash,comments2:90667,3715,ziplist,179,14, 0,sortedset,yy:94224,67972,skiplist,544,15, 0,hash,comments3:135049,70764,hashtable,1150,15, 0,hash,ll-date:2018-10-20 12:00:00:count,2043,ziplist,61,49, 0,set,likes:57513,2064,intset,498,8, 0,hash,ll-date:2018-09-29 04:00:00:summ,2091,ziplist,53,49, 0,hash,ll-date:2018-09-25 22:00:00:count,2243,ziplist,68,49,<\/code><\/pre>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, \u044d\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0436\u0435 \u0443\u043c\u0435\u0435\u0442 <a href=\"https:\/\/github.com\/sripathikrishnan\/redis-rdb-tools#comparing-rdb-files\">\u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c<\/a> \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 rdb-\u0441\u043d\u0430\u043f\u0448\u043e\u0442\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438\u043b\u0438 \u00ab<a href=\"https:\/\/github.com\/sripathikrishnan\/redis-rdb-tools#emitting-redis-protocol\">\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u044c<\/a>\u00bb \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Redis \u0432 \u043d\u0443\u0436\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0443 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u0410\u0432\u0442\u043e\u0440\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0435\u0449\u0451 \u0438 <a href=\"https:\/\/rdbtools.com\/\">rdbtools.com<\/a> \u2014 \u043f\u043b\u0430\u0442\u043d\u044b\u0439 GUI \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 Redis. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043c\u0438\u043d\u0443\u0432\u0448\u0435\u0433\u043e \u0433\u043e\u0434\u0430 \u043e\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u043b \u0441\u0432\u043e\u0451 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 (EOL), \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u0432 Redis Labs, \u0442\u043e\u0436\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 (<a href=\"https:\/\/redislabs.com\/redisinsight\/\">RedisInsight<\/a>). \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0437\u0430 \u0440\u0430\u043c\u043a\u0430\u043c\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<h3>3. Redis-audit<\/h3>\n<p>  <\/p>\n<ul>\n<li> <a href=\"https:\/\/github.com\/snmaynard\/redis-audit\">GitHub<\/a>.<\/li>\n<\/ul>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Ruby \u0438, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0443\u0441\u0442\u0430\u0440\u0435\u043b. \u0414\u043b\u044f \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0438\u0437 GitHub, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Ruby \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430:<\/p>\n<pre><code class=\"bash\">sudo apt-get install ruby-full gem install bundler bundle install<\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a:<\/p>\n<pre><code class=\"bash\">.\/redis-audit.rb -h 127.0.0.1<\/code><\/pre>\n<p>  \u2026 \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439:<\/p>\n<pre><code class=\"bash\">Auditing 127.0.0.1:6379 dbnum:0 sampling 50000 keys Sampling 50000 keys... 5000 keys sampled - 10% complete - 2019-11-26 14:16:16 +0300 10000 keys sampled - 20% complete - 2019-11-26 14:16:18 +0300 .\/redis-audit.rb:144:in `delete': invalid byte sequence in US-ASCII (ArgumentError)     from .\/redis-audit.rb:144:in `group_key'     from .\/redis-audit.rb:130:in `audit_key'     from .\/redis-audit.rb:99:in `block in audit_keys'     from .\/redis-audit.rb:97:in `times'     from .\/redis-audit.rb:97:in `audit_keys'     from .\/redis-audit.rb:358:in `&lt;main&gt;'<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0431\u044b\u043b\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u00ab\u043a\u043e\u0441\u0442\u044b\u043b\u0435\u043c\u00bb:<\/p>\n<pre><code class=\"bash\">until .\/redis-audit.rb -h 127.0.0.1 -s 50000 &gt; dtf-audit; do echo &quot;Try again&quot;; sleep 1; done  Auditing 127.0.0.1:6379 dbnum:0 sampling 50000 keys Sampling 50000 keys... 5000 keys sampled - 10% complete - 2019-11-24 22:18:26 +0300 10000 keys sampled - 20% complete - 2019-11-24 22:18:28 +0300 15000 keys sampled - 30% complete - 2019-11-24 22:18:29 +0300 20000 keys sampled - 40% complete - 2019-11-24 22:18:31 +0300 25000 keys sampled - 50% complete - 2019-11-24 22:18:32 +0300 30000 keys sampled - 60% complete - 2019-11-24 22:18:34 +0300 35000 keys sampled - 70% complete - 2019-11-24 22:18:35 +0300 40000 keys sampled - 80% complete - 2019-11-24 22:18:37 +0300 45000 keys sampled - 90% complete - 2019-11-24 22:18:38 +0300 50000 keys sampled - 100% complete - 2019-11-24 22:18:40 +0300 DB has 27402893 keys Sampled 6.25 MB of Redis memory Found 90 key groups ==============================================================================<\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre><code class=\"bash\">Found 107 key groups  ============================================================================== Found 1 keys containing strings, like: ooo:04-01-2019  These keys use 0.0% of the total sampled memory (2 bytes) None of these keys expire Average last accessed time: 12 hours, 3 minutes, 22 seconds - (Max: 12 hours, 3 minutes, 22 seconds Min:12 hours, 3 minutes, 22 seconds)  ============================================================================== Found 1 keys containing sets, like: ttt:fff:8aa26e6f8f7a232bd80877ddb4e3b7a4c7706be0031ab0a8f76adfb3e5448783  These keys use 0.0% of the total sampled memory (13 bytes) None of these keys expire Average last accessed time: 10 hours, 26 minutes, 34 seconds - (Max: 10 hours, 26 minutes, 34 seconds Min:10 hours, 26 minutes, 34 seconds)  ============================================================================== Found 1 keys containing hashs, like: zz:yy:vv:b45c247c-bcc4ae1b-fdacd2da-471e6cba-b82b9a20-a32255df-caa95a8a-a2533c7c  These keys use 0.0% of the total sampled memory (24 bytes) None of these keys expire Average last accessed time: 11 hours, 46 minutes, 54 seconds - (Max: 11 hours, 46 minutes, 54 seconds Min:11 hours, 46 minutes, 54 seconds)<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 (\u0442.\u0435. \u0438\u043c\u0435\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0442 RMA) \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u043d\u0435\u0439 \u0442\u0440\u0430\u0442\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<h3>4. Redis-sampler<\/h3>\n<p>  <\/p>\n<ul>\n<li> <a href=\"https:\/\/github.com\/antirez\/redis-sampler\">GitHub<\/a>.<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u0442\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u0442\u043e\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 Ruby, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043d\u0434, \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u043c \u0441\u044d\u043c\u043f\u043b\u043e\u0432:<\/p>\n<pre><code class=\"bash\">.\/redis-sampler.rb 127.0.0.1 6379 0 1000000<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0442\u0432\u0435\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">Sampling 127.0.0.1:6379 DB:0 with 1000000 RANDOMKEYS  TYPES =====  set: 864532 (86.45%)     zset: 116538 (11.65%)    hash: 16761 (1.68%)  string: 2055 (0.21%)     list: 114 (0.01%)  EXPIRES =======  unknown: 1000000 (100.00%)  Average: 0.00 Standard Deviation: 0.00  Min: 0 Max: 0  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  Note: 'unknown' expire means keys with no expire  STRINGS, SIZE OF VALUES =======================  1: 1096 (53.33%)         4: 485 (23.60%)          5: 182 (8.86%)  6: 180 (8.76%)           7: 60 (2.92%)            3: 21 (1.02%)  2: 21 (1.02%)            342: 7 (0.34%)           8: 2 (0.10%)  32: 1 (0.05%)  Average: 3.89 Standard Deviation: 19.88  Min: 1 Max: 342  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 1: 1096 (53.33%)      &lt;= 4: 506 (24.62%)       &lt;= 8: 424 (20.63%)  &lt;= 2: 21 (1.02%)         &lt;= 512: 7 (0.34%)        &lt;= 32: 1 (0.05%)  LISTS, NUMBER OF ELEMENTS =========================  4: 86 (75.44%)           1: 14 (12.28%)           3: 7 (6.14%)  2: 7 (6.14%)  Average: 3.45 Standard Deviation: 1.05  Min: 1 Max: 4  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 4: 93 (81.58%)        &lt;= 1: 14 (12.28%)        &lt;= 2: 7 (6.14%) LISTS, SIZE OF ELEMENTS =======================  482: 2 (1.75%)           491: 2 (1.75%)           674: 2 (1.75%)  666: 2 (1.75%)           449: 2 (1.75%)           515: 2 (1.75%)  561: 2 (1.75%)           558: 2 (1.75%)           590: 2 (1.75%)  483: 2 (1.75%)           631: 2 (1.75%)           527: 2 (1.75%)  777: 2 (1.75%)           633: 1 (0.88%)           456: 1 (0.88%)  604: 1 (0.88%)           606: 1 (0.88%)           498: 1 (0.88%)  710: 1 (0.88%)           1946: 1 (0.88%)          481: 1 (0.88%) (suppressed 80 items with perc &lt; 0.5% for a total of 70.18%)  Average: 699.10 Standard Deviation: 387.90  Min: 207 Max: 3686  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 1024: 72 (63.16%)     &lt;= 512: 30 (26.32%)      &lt;= 2048: 10 (8.77%)  &lt;= 256: 1 (0.88%)        &lt;= 4096: 1 (0.88%)  SETS, NUMBER OF ELEMENTS ========================  1: 38506 (33.04%)        2: 20277 (17.40%)        3: 11991 (10.29%)  4: 7695 (6.60%)          5: 5456 (4.68%)          6: 4097 (3.52%)  7: 3171 (2.72%)          8: 2559 (2.20%)          9: 2112 (1.81%)  10: 1767 (1.52%)         11: 1527 (1.31%)         12: 1223 (1.05%)  13: 1060 (0.91%)         14: 1030 (0.88%)         15: 860 (0.74%)  16: 775 (0.67%)          17: 706 (0.61%)          18: 608 (0.52%)  19: 576 (0.49%)          21: 519 (0.45%)          20: 502 (0.43%) (suppressed 924 items with perc &lt; 0.5% for a total of 8.17%)  Average: 2.89 Standard Deviation: 64.09  Min: 1 Max: 55774  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 2: 631053 (72.99%)    &lt;= 1: 186025 (21.52%)    &lt;= 4: 15631 (1.81%)  &lt;= 8: 13305 (1.54%)      &lt;= 16: 8311 (0.96%)      &lt;= 32: 5008 (0.58%)  &lt;= 64: 2845 (0.33%)      &lt;= 128: 1319 (0.15%)     &lt;= 256: 581 (0.07%)  &lt;= 512: 282 (0.03%)      &lt;= 1024: 117 (0.01%)     &lt;= 2048: 35 (0.00%)  &lt;= 4096: 16 (0.00%)      &lt;= 8192: 3 (0.00%)       &lt;= 65536: 1 (0.00%)  SETS, NUMBER OF ELEMENTS ========================  1: 38506 (33.04%)        2: 20277 (17.40%)        3: 11991 (10.29%)  4: 7695 (6.60%)          5: 5456 (4.68%)          6: 4097 (3.52%)  7: 3171 (2.72%)          8: 2559 (2.20%)          9: 2112 (1.81%)  10: 1767 (1.52%)         11: 1527 (1.31%)         12: 1223 (1.05%)  13: 1060 (0.91%)         14: 1030 (0.88%)         15: 860 (0.74%)  16: 775 (0.67%)          17: 706 (0.61%)          18: 608 (0.52%)  19: 576 (0.49%)          21: 519 (0.45%)          20: 502 (0.43%) (suppressed 924 items with perc &lt; 0.5% for a total of 8.17%)  Average: 2.89 Standard Deviation: 64.09  Min: 1 Max: 55774  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 2: 631053 (72.99%)    &lt;= 1: 186025 (21.52%)    &lt;= 4: 15631 (1.81%)  &lt;= 8: 13305 (1.54%)      &lt;= 16: 8311 (0.96%)      &lt;= 32: 5008 (0.58%)  &lt;= 64: 2845 (0.33%)      &lt;= 128: 1319 (0.15%)     &lt;= 256: 581 (0.07%)  &lt;= 512: 282 (0.03%)      &lt;= 1024: 117 (0.01%)     &lt;= 2048: 35 (0.00%)  &lt;= 4096: 16 (0.00%)      &lt;= 8192: 3 (0.00%)       &lt;= 65536: 1 (0.00%)  SETS, SIZE OF ELEMENTS ======================  41: 250500 (28.98%)      32: 215070 (24.88%)      33: 142136 (16.44%)  5: 71140 (8.23%)         37: 54151 (6.26%)        40: 45521 (5.27%)  31: 28938 (3.35%)        36: 18885 (2.18%)        6: 18383 (2.13%)  4: 9766 (1.13%)          30: 2513 (0.29%)         44: 1967 (0.23%)  35: 1025 (0.12%)         3: 729 (0.08%)           43: 387 (0.04%)  26: 372 (0.04%)          34: 334 (0.04%)          8: 318 (0.04%)  29: 242 (0.03%)          71: 233 (0.03%)          28: 224 (0.03%) (suppressed 129 items with perc &lt; 0.5% for a total of 0.20%)  Average: 32.53 Standard Deviation: 10.91  Min: 1 Max: 151  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 64: 515245 (59.60%)   &lt;= 32: 247497 (28.63%)   &lt;= 8: 90055 (10.42%)  &lt;= 4: 10495 (1.21%)      &lt;= 128: 966 (0.11%)      &lt;= 2: 100 (0.01%)  &lt;= 256: 76 (0.01%)       &lt;= 16: 50 (0.01%)        &lt;= 1: 48 (0.01%) SORTED SETS, NUMBER OF ELEMENTS ===============================  1: 38506 (33.04%)        2: 20277 (17.40%)        3: 11991 (10.29%)  4: 7695 (6.60%)          5: 5456 (4.68%)          6: 4097 (3.52%)  7: 3171 (2.72%)          8: 2559 (2.20%)          9: 2112 (1.81%)  10: 1767 (1.52%)         11: 1527 (1.31%)         12: 1223 (1.05%)  13: 1060 (0.91%)         14: 1030 (0.88%)         15: 860 (0.74%)  16: 775 (0.67%)          17: 706 (0.61%)          18: 608 (0.52%)  19: 576 (0.49%)          21: 519 (0.45%)          20: 502 (0.43%) (suppressed 924 items with perc &lt; 0.5% for a total of 8.17%)  Average: 23.62 Standard Deviation: 374.23  Min: 1 Max: 33340  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 1: 38506 (33.04%)     &lt;= 2: 20277 (17.40%)     &lt;= 4: 19686 (16.89%)  &lt;= 8: 15283 (13.11%)     &lt;= 16: 10354 (8.88%)     &lt;= 32: 6220 (5.34%)  &lt;= 64: 3085 (2.65%)      &lt;= 128: 1445 (1.24%)     &lt;= 256: 702 (0.60%)  &lt;= 512: 388 (0.33%)      &lt;= 1024: 235 (0.20%)     &lt;= 2048: 148 (0.13%)  &lt;= 4096: 107 (0.09%)     &lt;= 8192: 57 (0.05%)      &lt;= 16384: 31 (0.03%)  &lt;= 32768: 13 (0.01%)     &lt;= 65536: 1 (0.00%)  SORTED SETS, SIZE OF ELEMENTS =============================  7: 52226 (44.81%)        8: 45833 (39.33%)        6: 8702 (7.47%)  15: 2971 (2.55%)         5: 2896 (2.49%)          4: 484 (0.42%)  18: 448 (0.38%)          21: 445 (0.38%)          16: 348 (0.30%)  20: 274 (0.24%)          12: 272 (0.23%)          22: 227 (0.19%)  14: 204 (0.18%)          13: 191 (0.16%)          17: 150 (0.13%)  10: 94 (0.08%)           11: 71 (0.06%)           3: 37 (0.03%)  9: 36 (0.03%)            19: 26 (0.02%)           2: 21 (0.02%) (suppressed 188 items with perc &lt; 0.5% for a total of 0.50%)  Average: 9.16 Standard Deviation: 22.30  Min: 1 Max: 722  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 8: 109657 (94.10%)    &lt;= 16: 4187 (3.59%)      &lt;= 32: 1610 (1.38%)  &lt;= 4: 521 (0.45%)        &lt;= 512: 489 (0.42%)      &lt;= 128: 30 (0.03%)  &lt;= 2: 21 (0.02%)         &lt;= 64: 13 (0.01%)        &lt;= 256: 5 (0.00%)  &lt;= 1024: 3 (0.00%)       &lt;= 1: 2 (0.00%)  HASHES, NUMBER OF FIELDS ========================  1: 3261 (19.46%)         3: 2763 (16.48%)         2: 1521 (9.07%)  4: 1361 (8.12%)          5: 1289 (7.69%)          6: 611 (3.65%)  7: 238 (1.42%)           8: 236 (1.41%)           18: 173 (1.03%)  9: 173 (1.03%)           16: 160 (0.95%)          12: 160 (0.95%)  13: 158 (0.94%)          15: 157 (0.94%)          17: 157 (0.94%)  10: 155 (0.92%)          14: 154 (0.92%)          22: 141 (0.84%)  11: 140 (0.84%)          20: 137 (0.82%)          19: 123 (0.73%) (suppressed 830 items with perc &lt; 0.5% for a total of 20.84%)  Average: 71.88 Standard Deviation: 397.44  Min: 1 Max: 10869  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 4: 4124 (24.60%)      &lt;= 1: 3261 (19.46%)      &lt;= 8: 2374 (14.16%)  &lt;= 2: 1521 (9.07%)       &lt;= 32: 1418 (8.46%)      &lt;= 64: 1329 (7.93%)  &lt;= 16: 1257 (7.50%)      &lt;= 128: 429 (2.56%)      &lt;= 512: 274 (1.63%)  &lt;= 256: 238 (1.42%)      &lt;= 1024: 236 (1.41%)     &lt;= 2048: 181 (1.08%)  &lt;= 4096: 84 (0.50%)      &lt;= 8192: 29 (0.17%)      &lt;= 16384: 6 (0.04%)  HASHES, SIZE OF FIELDS ======================  unknown: 13916 (83.03%)  5: 1570 (9.37%)          24: 244 (1.46%)  32: 225 (1.34%)          22: 127 (0.76%)          29: 86 (0.51%)  43: 82 (0.49%)           26: 60 (0.36%)           25: 47 (0.28%)  30: 42 (0.25%)           27: 41 (0.24%)           12: 40 (0.24%)  36: 34 (0.20%)           23: 34 (0.20%)           39: 31 (0.18%)  21: 23 (0.14%)           8: 23 (0.14%)            28: 17 (0.10%)  34: 15 (0.09%)           16: 15 (0.09%)           64: 15 (0.09%) (suppressed 19 items with perc &lt; 0.5% for a total of 0.44%)  Average: 15.12 Standard Deviation: 12.77  Min: 2 Max: 64 Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 8: 1600 (56.24%)      &lt;= 32: 969 (34.06%)      &lt;= 64: 201 (7.07%)  &lt;= 16: 59 (2.07%)        &lt;= 4: 15 (0.53%)         &lt;= 2: 1 (0.04%)  HASHES, SIZE OF VALUES ======================  unknown: 13916 (83.03%)  13: 768 (4.58%)          14: 624 (3.72%)  6: 394 (2.35%)           12: 192 (1.15%)          3: 172 (1.03%)  4: 153 (0.91%)           7: 119 (0.71%)           2: 98 (0.58%)  5: 90 (0.54%)            21: 75 (0.45%)           20: 57 (0.34%)  16: 33 (0.20%)           1: 30 (0.18%)            15: 18 (0.11%)  9: 12 (0.07%)            22: 3 (0.02%)            19: 2 (0.01%)  8: 2 (0.01%)             71: 1 (0.01%)            32: 1 (0.01%) (suppressed 1 items with perc &lt; 0.5% for a total of 0.01%)  Average: 10.52 Standard Deviation: 5.05  Min: 1 Max: 71  Powers of two distribution: (NOTE &lt;= p means: p\/2 &lt; x &lt;= p)  &lt;= 16: 1647 (57.89%)     &lt;= 8: 605 (21.27%)       &lt;= 4: 325 (11.42%)  &lt;= 32: 138 (4.85%)       &lt;= 2: 98 (3.44%)         &lt;= 1: 30 (1.05%)  &lt;= 128: 1 (0.04%)        &lt;= 64: 1 (0.04%)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412\u044b\u0432\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0442\u0438\u043f\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u0431\u0430\u0437\u0435 Redis \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0441\u044d\u043c\u043f\u043b\u043e\u0432. \u0412 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u043c\u0435\u0440\u0435.<\/p>\n<h3>5. RedisDesktop<\/h3>\n<p>  <\/p>\n<ul>\n<li> <a href=\"https:\/\/github.com\/uglide\/RedisDesktopManager\">GitHub<\/a>;<\/li>\n<li> <a href=\"https:\/\/redisdesktop.com\/\">\u0421\u0430\u0439\u0442<\/a>.<\/li>\n<\/ul>\n<p>  \u042d\u0442\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 GUI \u0434\u043b\u044f Redis. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u043d\u0435\u0439 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043e\u0449\u043d\u043e\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 (\u0441 32 \u0413\u0431 \u043f\u0430\u043c\u044f\u0442\u0438) \u0435\u0451 \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u043e\u0431\u044a\u0451\u043c\u0430\u0445 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043b\u0438\u0448\u044c \u043a \u043f\u0430\u0434\u0435\u043d\u0438\u044e \u0441\u0430\u043c\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b\u2026 \u041d\u0435 \u0441\u0442\u0430\u043b\u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u0438, \u0442.\u043a. \u043d\u0430\u0448\u043b\u0438 \u0438\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 GUI \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0434\u043b\u044f \u043d\u0430\u0441 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442.<\/p>\n<h3>6. Harvest <\/h3>\n<p>  <\/p>\n<ul>\n<li> <a href=\"https:\/\/github.com\/31z4\/harvest\">GitHub<\/a>.<\/li>\n<\/ul>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre><code class=\"bash\"># docker run --link redis:redis -it --rm 31z4\/harvest redis:\/\/redis t:: 12.65% (697) tl:i:n:: 10.75% (592) tl:i:n:1: 5.68% (313) t:n:: 1.91% (105) t:n:i:: 1.87% (103) c: 1.63% (90) c:: 1.60% (88) n:: 1.52% (84) n:f:: 1.49% (82) c:l:: 1.34% (74)<\/code><\/pre>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u044d\u043c\u043f\u043b\u043e\u0432, \u0447\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 \u0431\u0430\u0437\u0435:<\/p>\n<pre><code class=\"bash\">docker run --link redis:redis -it --rm 31z4\/harvest redis:\/\/redis -s 3000000  warning: database size (27402892) is less than the number of samples (30000000)  t: 6.35% (20471794) tl:: 6.35% (20471508) tl:i:: 5.52% (17777810) tl:i:n:: 5.52% (17777693) tl:i:n:1: 2.89% (9302664) c: 1.06% (3398834) c:: 1.02% (3297466) c:c:: 0.84% (2697278) tl:n:: 0.84% (2693697) tl:n:i:: 0.82% (2649015)<\/code><\/pre>\n<p>  \u0422\u0443\u0442 \u043c\u044b \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0434\u0438\u0432\u0438\u043b\u0438\u0441\u044c\u2026<\/p>\n<p>  \u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u0410\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u2014 \u043d\u0435\u0442. \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 (\u0438\u043b\u0438 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438) \u2014 \u0441\u043b\u043e\u0436\u043d\u043e. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u0451\u043b.<\/p>\n<h3>\u0418\u0442\u043e\u0433\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430<\/h3>\n<p>  \u0413\u043b\u0430\u0432\u043d\u044b\u043c \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u043e\u043c \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0441\u0442\u0430\u043b RMA (redis-memory-analyzer): \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434 \u0431\u044b\u043b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438, \u043d\u043e \u0438 \u0432 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0438\/\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430\u0448\u043b\u0430 18 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043a\u043b\u044e\u0447\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0438 \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u044b \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b. \u041c\u044b \u0436\u0435 \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u0448\u0438 \u0411\u0414 \u00ab\u043f\u043e\u0445\u0443\u0434\u0435\u044e\u0442\u00bb, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0441\u044f \u00ab\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439\u00bb \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Redis, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043e\u043c \u0438\u0437 Sentinel, Redis master \u0438 Redis slave. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 Redis Enterprise Operator \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0435\u0433\u043e <a href=\"https:\/\/redislabs.com\/redis-enterprise-cloud\/essentials-pricing\/\">\u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0446\u0435\u043d\u044b<\/a>, \u0430 <a href=\"https:\/\/github.com\/AmadeusITGroup\/Redis-Operator\">\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0442 Amadeus IT Group<\/a> \u2014 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0437\u0440\u0435\u043b\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0421\u0445\u0435\u043c\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 failover\u2019\u0430 \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u0434\u0430 \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0443\u0436\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0438 \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438, \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0430\u043c\u043e\u0439 Redis \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0448\u0430\u0433\u0438.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u043f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043e\u0442 Spotahome. \u041f\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e RMA \u2014 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0431\u0430\u0437\u044b Redis. \u041e\u043d \u043f\u043e\u043c\u043e\u0433 \u043d\u0430\u043c \u0441\u0445\u043e\u0434\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 Redis \u0441\u0442\u0430\u043b \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0438 \u043a\u0443\u0434\u0430 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0438\u043b\u0438\u044f \u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u0445 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<\/p>\n<h2>P.S.<\/h2>\n<p>  \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435:<\/p>\n<ul>\n<li> \u00ab<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/478404\/\">KeyDB \u043a\u0430\u043a [\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f] \u0437\u0430\u043c\u0435\u043d\u0430 Redis<\/a>\u00bb;<\/li>\n<li> \u00ab<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/431500\/\">\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 Kubernetes (\u043e\u0431\u0437\u043e\u0440 \u0438 \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430)<\/a>\u00bb;<\/li>\n<li> \u00ab<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/475036\/\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f Cassandra \u0432 Kubernetes: \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/a>\u00bb;<\/li>\n<li> \u00ab<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/461149\/\">\u0411\u0435\u0441\u043f\u0440\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f MongoDB \u0432 Kubernetes<\/a>\u00bb;<\/li>\n<li> \u00ab<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/450662\/\">\u0411\u0435\u0441\u043f\u0440\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f RabbitMQ \u0432 Kubernetes<\/a>\u00bb.<\/li>\n<\/ul>\n<\/div>\n<p> \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\/company\/flant\/blog\/480722\/\"> https:\/\/habr.com\/ru\/company\/flant\/blog\/480722\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/480722\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p9\/cj\/wt\/p9cjwtwfxea35sztyast6f7isao.png\"><\/p>\n<p>  \u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 in-memory-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f TTL? \u0410 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0433\u043e, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432 Kubernetes? \u0410 \u0435\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a Redis \u043c\u044b \u0432\u043d\u0435\u0441\u0451\u043c \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u0438 \u0431\u0435\u0437\u043e\u0431\u0438\u0434\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435?.. \u041e\u0442\u0432\u0435\u0447\u0430\u044f \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u044b \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0439\u0442\u0438 \u043f\u0443\u0442\u0438 \u043a \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0411\u0414 \u0432 Redis.<\/p>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043a\u0435\u0439\u0441<\/h2>\n<p>  Redis \u0443 \u043d\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/spotahome\/redis-operator\">\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 \u043e\u0442 Spotahome<\/a>. \u041f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443, \u044d\u0442\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0445\u043e\u0442\u044f \u0438 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b \u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-298943","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298943","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=298943"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298943\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=298943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=298943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=298943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}