{"id":12632,"date":"2022-12-27T15:57:54","date_gmt":"2022-12-27T10:27:54","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=12632"},"modified":"2025-11-19T17:49:40","modified_gmt":"2025-11-19T12:19:40","slug":"all-redis-setup-under-7-minutes","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2022\/12\/27\/all-redis-setup-under-7-minutes\/","title":{"rendered":"All Redis Setup Under 7 Minutes!"},"content":{"rendered":"\r\n<p><strong>Redis<\/strong> is a popular open-source in-memory database that supports multiple data structures like strings, hashes, lists, and sets. But similar to other tools, we can scale <strong><em>standalone Redis<\/em><\/strong> to a particular extent, but not beyond that. That\u2019s why we have a cluster mode setup in which we can scale Redis nodes horizontally and then distribute data among those nodes.<\/p>\r\n\r\n\r\n\r\n<p>Generally, we categorize the Redis setup into<strong> three<\/strong> different types:<\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li>Standalone<\/li>\r\n\r\n\r\n\r\n<li>Leader-Follower (Replication)<\/li>\r\n\r\n\r\n\r\n<li>Leader-Leader(Sharding)<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">Standalone Setup<\/h4>\r\n\r\n\r\n\r\n<p>In a Standalone setup, the complexity is minimal, but we cannot scale the solution if the data increases. Also, the fail-over and high availability will not be supported inside it.<\/p>\r\n\r\n\r\n\r\n<p><!--more--><\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">Leader-Follower Setup<\/h4>\r\n\r\n\r\n\r\n<p>In the Leader-Follower setup, Redis can replicate data to any number of nodes. i.e. it lets the follower have the exact copy of their leader. This helps in performance optimizations. Also, it introduces the concept of high availability.<br \/>But it doesn&#8217;t support the failover automatically. For that, we need to set up an additional component in the cluster called Sentinel.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">Leader-Follower Sharding<\/h4>\r\n\r\n\r\n\r\n<p>A Redis cluster is simply a\u00a0<strong><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/understanding-database-sharding\" target=\"_blank\" rel=\"noopener\">data-sharding strategy<\/a>.\u00a0<\/strong>It automatically partitions data across multiple Redis nodes. It is an advanced feature of Redis which achieves distributed storage and prevents a single point of failure.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Challenges with Redis setup<\/h2>\r\n\r\n\r\n\r\n<p>Although Redis has made a lot of things easy in modern application architecture, setting the correct scale of Redis or Redis cluster is still a challenge for many organizations. Some of the significant challenges are:<\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li>Scaling Redis replicated and sharded cluster on-fly<\/li>\r\n\r\n\r\n\r\n<li>Rebalancing and re-sharding of <a href=\"https:\/\/opstree.com\/blog\/2019\/10\/29\/redis-cluster-setup-sharding-and-failover-testing\/\">Redis cluster<\/a><\/li>\r\n\r\n\r\n\r\n<li>Monitoring of important metrics<\/li>\r\n\r\n\r\n\r\n<li>Scaling and integration of Sentinel<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Redis OSM Role<\/h2>\r\n\r\n\r\n\r\n<p>At our organization, we are a firm believer in contributing to open-source. We create different automation to create ideal solutions. Once we feel that the solution is mature enough to help other people, we <a href=\"https:\/\/opstree.com\/opstree-open-source\/\" target=\"_blank\" rel=\"noopener\">open-source<\/a> it. Similarly, we worked with an organization with a massive requirement for Redis. They managed all three different Redis setups for different use-case, but they needed to create a one-stop automation to handle all these requirements.<\/p>\r\n\r\n\r\n\r\n<p>Since we already have the OSM ansible role available for redis, we decided to enhance it to support all these use cases.<\/p>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/github.com\/OT-OSM\/redis-setup\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/OT-OSM\/redis-setup<\/a><\/p>\r\n\r\n\r\n\r\n<p>OSM Redis Setup is a bundle of roles, playbooks, and inventories to set up different modes of redis like- standalone, sharded cluster, and replicated cluster, along with sentinel to handle fail-over. This ansible automation doesn&#8217;t restrict to setting up any environment once; it can also be used for change management, upgrading, and scaling the environment.<\/p>\r\n\r\n\r\n\r\n<p><strong>Supported features of OSM Redis Setup:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li>Standalone Redis setup<\/li>\r\n\r\n\r\n\r\n<li>\u00a0Redis replication-based cluster support<\/li>\r\n\r\n\r\n\r\n<li>\u00a0Redis sharding-based cluster support<\/li>\r\n\r\n\r\n\r\n<li>\u00a0Sentinel Integration with replication cluster<\/li>\r\n\r\n\r\n\r\n<li>\u00a0Monitoring support with redis exporter<\/li>\r\n\r\n\r\n\r\n<li>\u00a0Adding and removing the node from the cluster with sharding and rebalancing<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>In the next blog series, we will show all these redis setups and tuning using the Redis setup ansible role.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\r\n\r\n\r\n\r\n<p>For further information on OSM setup and use cases, you can refer to the documentation page of it.<br \/><a href=\"https:\/\/github.com\/OT-OSM\/redis-setup\/tree\/master\/docs\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/OT-OSM\/redis-setup\/tree\/master\/docs<\/a><\/p>\r\n\r\n\r\n\r\n<p>If you face any issues or want to ask any questions, please feel free to use the comment section of this blog. Also, if you have problems or feature requests regarding the Redis Setup role, you can raise the issue in GitHub.<\/p>\r\n\r\n\r\n\r\n<p>https:\/\/github.com\/OT-OSM\/redis-setup<\/p>\r\n\r\n\r\n\r\n<p>Thanks for reading. I\u2019d appreciate your feedback. Please leave your comment below if you guys have any suggestions or questions.<\/p>\r\n\r\n\r\n\r\n<p><strong>Cheers till next time!!<\/strong><\/p>\r\n\r\n\r\n\r\n<p><strong>Blog Pundits: <a href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sandeep Rawat<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-center\">Related Searches &#8211; <a href=\"https:\/\/opstree.com\/services\/database-and-data-engineering\/\" target=\"_blank\" rel=\"noopener\">Data Engineering Services<\/a> | <a href=\"https:\/\/opstree.com\/aws-partner\/\" target=\"_blank\" rel=\"noopener\">AWS Consulting Partner<\/a>\u00a0<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li><\/ul>\r\n","protected":false},"excerpt":{"rendered":"<p>Redis is a popular open-source in-memory database that supports multiple data structures like strings, hashes, lists, and sets. But similar to other tools, we can scale standalone Redis to a particular extent, but not beyond that. That\u2019s why we have a cluster mode setup in which we can scale Redis nodes horizontally and then distribute &hellip; <a href=\"https:\/\/opstree.com\/blog\/2022\/12\/27\/all-redis-setup-under-7-minutes\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;All Redis Setup Under 7 Minutes!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":89038429,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[768739304,768739308,768739285,768739293,44,768739306,688729979,688976819],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-3hK","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/12632"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/89038429"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=12632"}],"version-history":[{"count":14,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/12632\/revisions"}],"predecessor-version":[{"id":29903,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/12632\/revisions\/29903"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=12632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=12632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=12632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}