CINXE.COM
Redis Cloud Agreement - Redis
<!doctype html> <html lang="en"> <head> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO plugin v24.1 - https://yoast.com/wordpress/plugins/seo/ --> <title>Redis Cloud Agreement - Redis</title> <meta name="description" content="Redis Cloud Agreement (Also known as the Redis Cloud Terms of Service or Redis Cloud ToS)" /> <link rel="canonical" href="https://redis.io/legal/cloud-tos/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Redis Enterprise Cloud Agreement" /> <meta property="og:description" content="Redis Enterprise Cloud Agreement (Also known as the Redis Cloud Terms of Service or Redis Cloud ToS)" /> <meta property="og:url" content="https://redis.io/legal/cloud-tos/" /> <meta property="og:site_name" content="Redis" /> <meta property="article:publisher" content="https://www.facebook.com/Redisinc" /> <meta property="article:modified_time" content="2024-10-07T21:57:45+00:00" /> <meta property="og:image" content="https://redis.io/wp-content/uploads/2024/04/Redis_Website_PreviewCard_920x612px.png" /> <meta property="og:image:width" content="920" /> <meta property="og:image:height" content="612" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Redis Enterprise Cloud Agreement" /> <meta name="twitter:description" content="Redis Enterprise Cloud Agreement (Also known as the Redis Cloud Terms of Service or Redis Cloud ToS)" /> <meta name="twitter:site" content="@Redisinc" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://redis.io/legal/cloud-tos/","url":"https://redis.io/legal/cloud-tos/","name":"Redis Cloud Agreement - Redis","isPartOf":{"@id":"https://redis.io/#website"},"datePublished":"2022-05-27T21:03:15+00:00","dateModified":"2024-10-07T21:57:45+00:00","description":"Redis Cloud Agreement (Also known as the Redis Cloud Terms of Service or Redis Cloud ToS)","breadcrumb":{"@id":"https://redis.io/legal/cloud-tos/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://redis.io/legal/cloud-tos/"]}]},{"@type":"BreadcrumbList","@id":"https://redis.io/legal/cloud-tos/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://redis.io/"},{"@type":"ListItem","position":2,"name":"Legal Notices","item":"https://redis.io/legal/"},{"@type":"ListItem","position":3,"name":"Redis Cloud Agreement"}]},{"@type":"WebSite","@id":"https://redis.io/#website","url":"https://redis.io/","name":"Redis","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://redis.io/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//code.jquery.com' /> <link rel='dns-prefetch' href='//redis.io' /> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <link rel='stylesheet' id='wp-block-library-css' href='https://redis.io/wp-includes/css/dist/block-library/style.min.css?ver=6.7.1' type='text/css' media='all' /> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <style id='filebird-block-filebird-gallery-style-inline-css' type='text/css'> ul.filebird-block-filebird-gallery{margin:auto!important;padding:0!important;width:100%}ul.filebird-block-filebird-gallery.layout-grid{display:grid;grid-gap:20px;align-items:stretch;grid-template-columns:repeat(var(--columns),1fr);justify-items:stretch}ul.filebird-block-filebird-gallery.layout-grid li img{border:1px solid #ccc;box-shadow:2px 2px 6px 0 rgba(0,0,0,.3);height:100%;max-width:100%;-o-object-fit:cover;object-fit:cover;width:100%}ul.filebird-block-filebird-gallery.layout-masonry{-moz-column-count:var(--columns);-moz-column-gap:var(--space);column-gap:var(--space);-moz-column-width:var(--min-width);columns:var(--min-width) var(--columns);display:block;overflow:auto}ul.filebird-block-filebird-gallery.layout-masonry li{margin-bottom:var(--space)}ul.filebird-block-filebird-gallery li{list-style:none}ul.filebird-block-filebird-gallery li figure{height:100%;margin:0;padding:0;position:relative;width:100%}ul.filebird-block-filebird-gallery li figure figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}ul.filebird-block-filebird-gallery li figure figcaption a{color:inherit} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--gray: #6d7278;--wp--preset--color--dark-gray: #494c4d;--wp--preset--color--light-gray: #a2a8a8;--wp--preset--color--ui: #dfdfdf;--wp--preset--color--ui-light: #f8f8f8;--wp--preset--color--cloudy: #e6e5e5;--wp--preset--color--smoke: #a7a7a7;--wp--preset--color--chill: #e3ebed;--wp--preset--color--ice: #f7f9fc;--wp--preset--color--navy: #354253;--wp--preset--color--light-navy: #5a697d;--wp--preset--color--red: #CD5D57;--wp--preset--color--orange: #CF5815;--wp--preset--color--dark-orange: #E98125;--wp--preset--color--neon-blue: #1969FF;--wp--preset--color--neon-blue-light: #10BBFE;--wp--preset--color--neon-green: #79e5a6;--wp--preset--color--teal: #14708D;--wp--preset--color--teal-light: #1CA9AB;--wp--preset--color--sky: #54bcfd;--wp--preset--color--baby: #8aa1ee;--wp--preset--color--purple: #5961ff;--wp--preset--color--purple-dark: #282550;--wp--preset--color--violet: #3e41a0;--wp--preset--color--light-violet: #465282;--wp--preset--color--brown: #726a5c;--wp--preset--color--gold: #777436;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 14px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 18px;--wp--preset--font-size--huge: 36px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='prefetch' as='style' id='wp-pagenavi-css' href='https://redis.io/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all' /> <link rel='stylesheet' id='child-theme-style-css' href='https://redis.io/wp-content/themes/redislabs-glide/assets/dist/css/main.min.css?ver=1743987922' type='text/css' media='all' /> <link rel='stylesheet' id='single-css' href='https://redis.io/wp-content/themes/wpx/assets/dist/css/critical/single.css?ver=1743987922' type='text/css' media='all' /> <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.4.min.js?ver=3.6.5" id="jquery-js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.js?ver=4.4.3" id="chartjs-scripts-js"></script> <script type="text/javascript" src="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/js/benchmark.min.js?ver=1743987922" id="benchmark-scripts-js"></script> <link rel="https://api.w.org/" href="https://redis.io/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://redis.io/wp-json/wp/v2/pages/94349" /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://redis.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fredis.io%2Flegal%2Fcloud-tos%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://redis.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fredis.io%2Flegal%2Fcloud-tos%2F&format=xml" /> <!-- Stream WordPress user activity plugin v4.0.2 --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TKZ6J9R');</script> <!-- End Google Tag Manager --> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"NRJS-1fedf62d6f1beddfa04",applicationID:"650495667"};;/*! For license information please see nr-loader-rum-1.286.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{fn:()=>s,x1:()=>c});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=function(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},5217:(e,t,r)=>{"use strict";r.d(t,{gD:()=>h,xN:()=>m});r(860).K7.genericEvents;const n="experimental.marks",i="experimental.measures",o="experimental.resources",a=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var s=r(2614),c=r(944),u=r(384),d=r(8122);const l="[data-nr-mask]",f=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(i)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:s.wk,inactiveMs:s.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){a(t)?e.mask_selector="".concat(t,",").concat(l):""===t||null===t?e.mask_selector=l:(0,c.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){a(t)?e.block_selector+=",".concat(t):""!==t&&(0,c.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,c.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},g={},p="All configuration objects require an agent identifier!";function m(e,t){if(!e)throw new Error(p);g[e]=(0,d.a)(t,f());const r=(0,u.nY)(e);r&&(r.init=g[e])}function h(e,t){if(!e)throw new Error(p);var r=function(e){if(!e)throw new Error(p);if(!g[e])throw new Error("Configuration for ".concat(e," was never set"));return g[e]}(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.286.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6154);const i="newrelic";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=m(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>a,t:()=>s});var n=r(7836),i=r(3241);const o=new Set,a={};function s(e,t){const r=n.ee.get(t);a[t]??={},e&&"object"==typeof e&&(o.has(t)||(r.emit("rumresp",[e]),a[t]=e,o.add(t),(0,i.W)({agentIdentifier:t,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log";n.K7.logging},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>V});var n=r(860),i=r(2555),o=r(9908),a=r(1687),s=r(5289),c=r(6154),u=r(944),d=r(8154),l=r(384),f=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",f.G4.RECORD,f.G4.PAUSE,"log","wrapLogger"],p=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),h=r(2614),v=r(993);var b=r(7836),y=r(2646),w=r(3434);const R=new Map;function A(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,u.R)(29);const i=function(e){return(e||b.ee).get("logger")}(e),o=(0,w.YM)(i),a=new y.y(b.P);a.level=n.level,a.customAttributes=n.customAttributes;const s=t[r]?.[w.Jt]||t[r];return R.set(s,a),o.inPlace(t,[r],"wrap-logger-",(()=>R.get(s))),i}var E=r(3241),_=r(5701);function x(){const e=(0,l.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.runtime?e.exposed&&e[t]&&"micro-agent"!==e.runtime.loaderType&&n.push(e[t](...r)):(0,u.R)(38,t)})),n[0]}(t,...r)}))}const N={};function I(e,t){t||(0,a.Ak)(e.agentIdentifier,"api");const l=e.ee.get("tracer");N[e.agentIdentifier]=h.g.OFF,e.ee.on(f.G4.REPLAY_RUNNING,(t=>{N[e.agentIdentifier]=t}));const g="api-",b=g+"ixn-";function y(t,r,n,o){const a=e.info;return null===r?delete a.jsAttributes[t]:(0,i.x1)(e.agentIdentifier,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(g,n,!0,o||null===r?"session":void 0)(t,r)}function w(){}e.log=function(t,{customAttributes:r={},level:i=v.p_.INFO}={}){(0,o.p)(d.xV,["API/log/called"],void 0,n.K7.metrics,e.ee),function(e,t,r={},i=v.p_.INFO){(0,o.p)(d.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,o.p)(v.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(e.ee,t,r,i)},e.wrapLogger=(t,r,{customAttributes:i={},level:a=v.p_.INFO}={})=>{(0,o.p)(d.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,e.ee),A(e.ee,t,r,{customAttributes:i,level:a})},p.forEach((t=>{e[t]=x(g,t,!0,"api")})),e.addPageAction=x(g,"addPageAction",!0,n.K7.genericEvents),e.recordCustomEvent=x(g,"recordCustomEvent",!0,n.K7.genericEvents),e.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),e.runtime.customTransaction=(r||"http://custom.transaction")+t,x(g,"setPageViewName",!0)()},e.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return y(e,t,"setCustomAttribute",r);(0,u.R)(40,typeof t)}else(0,u.R)(39,typeof e)},e.setUserId=function(e){if("string"==typeof e||null===e)return y("enduser.id",e,"setUserId",!0);(0,u.R)(41,typeof e)},e.setApplicationVersion=function(e){if("string"==typeof e||null===e)return y("application.version",e,"setApplicationVersion",!1);(0,u.R)(42,typeof e)},e.start=()=>{try{(0,o.p)(d.xV,["API/start/called"],void 0,n.K7.metrics,e.ee),e.ee.emit("manual-start-all")}catch(e){(0,u.R)(23,e)}},e[f.G4.RECORD]=function(){(0,o.p)(d.xV,["API/recordReplay/called"],void 0,n.K7.metrics,e.ee),(0,o.p)(f.G4.RECORD,[],void 0,n.K7.sessionReplay,e.ee)},e[f.G4.PAUSE]=function(){(0,o.p)(d.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,e.ee),(0,o.p)(f.G4.PAUSE,[],void 0,n.K7.sessionReplay,e.ee)},e.interaction=function(e){return(new w).get("object"==typeof e?e:{})};const R=w.prototype={createTracer:function(t,r){var i={},a=this,s="function"==typeof r;return(0,o.p)(d.xV,["API/createTracer/called"],void 0,n.K7.metrics,e.ee),e.runSoftNavOverSpa||(0,o.p)(b+"tracer",[(0,m.t)(),t,i],a,n.K7.spa,e.ee),function(){if(l.emit((s?"":"no-")+"fn-start",[(0,m.t)(),a,s],i),s)try{return r.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw l.emit("fn-err",[arguments,this,t],i),t}finally{l.emit("fn-end",[(0,m.t)()],i)}}}};function x(t,r,i,a){return function(){return(0,o.p)(d.xV,["API/"+r+"/called"],void 0,n.K7.metrics,e.ee),(0,E.W)({agentIdentifier:e.agentIdentifier,drained:!!_.B?.[e.agentIdentifier],type:"data",name:"api",feature:t+r,data:{notSpa:i,bufferGroup:a}}),a&&(0,o.p)(t+r,[i?(0,m.t)():performance.now(),...arguments],i?null:this,a,e.ee),i?void 0:this}}function I(){r.e(296).then(r.bind(r,8778)).then((({setAsyncAPI:t})=>{t(e),(0,a.Ze)(e.agentIdentifier,"api")})).catch((t=>{(0,u.R)(27,t),e.ee.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((t=>{R[t]=x(b,t,void 0,e.runSoftNavOverSpa?n.K7.softNav:n.K7.spa)})),e.setCurrentRouteName=e.runSoftNavOverSpa?x(b,"routeName",void 0,n.K7.softNav):x(g,"routeName",!0,n.K7.spa),e.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,o.p)(d.xV,["API/noticeError/called"],void 0,n.K7.metrics,e.ee),(0,o.p)("err",[t,(0,m.t)(),!1,r,!!N[e.agentIdentifier]],void 0,n.K7.jserrors,e.ee)},c.RI?(0,s.GG)((()=>I()),!0):I(),!0}var k=r(5217),S=r(8122);const T={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},O={};var j=r(3371);const P=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e},K=new Set;function V(e,t={},r,n){let{init:o,info:a,loader_config:s,runtime:u={},exposed:d=!0}=t;u.loaderType=r;const f=(0,l.pV)();a||(o=f.init,a=f.info,s=f.loader_config),(0,k.xN)(e.agentIdentifier,o||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");O[e]=(0,S.a)(t,T);const r=(0,l.nY)(e);r&&(r.loader_config=O[e])}(e.agentIdentifier,s||{}),a.jsAttributes??={},c.bv&&(a.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,a);const g=e.init,p=[a.beacon,a.errorBeacon];K.has(e.agentIdentifier)||(g.proxy.assets&&(P(g.proxy.assets),p.push(g.proxy.assets)),g.proxy.beacon&&p.push(g.proxy.beacon),x(),(0,l.US)("activatedFeatures",_.B),e.runSoftNavOverSpa&&=!0===g.soft_navigations.enabled&&g.feature_flags.includes("soft_nav")),u.denyList=[...g.ajax.deny_list||[],...g.ajax.block_internal?p:[]],u.ptid=e.agentIdentifier,(0,j.V)(e.agentIdentifier,u),K.has(e.agentIdentifier)||(e.ee=b.ee.get(e.agentIdentifier),e.exposed=d,I(e,n),(0,E.W)({agentIdentifier:e.agentIdentifier,drained:!!_.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:e.config})),K.add(e.agentIdentifier)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>d,K7:()=>c,P3:()=>u,XX:()=>i,Yy:()=>s,df:()=>o,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s="browser/logs",c={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.286.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.286.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-+MkNp41sKZ0iYMHsept2X5HfDqyTLnDR9rprfuuxTRn6FVcYOei0L1PleWwmSuU2wrJDnMXcNYjTfSPQ3xYU/w=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={374:0,840:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.286.0.PROD"]=self["webpackChunk:NRBA-1.286.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if(this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if(this[t]!==o.prototype[t]&&this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(5217);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),m=i(384);const h=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function v(e){return!!(0,m.dV)().o.MO&&h(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return v(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class R extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var A=i(9908),E=i(2843),_=i(3878),x=i(782),N=i(1863);class I extends y{static featureName=x.T;constructor(e,t=!0){super(e,x.T,t),p.RI&&((0,E.u)((()=>(0,A.p)("docHidden",[(0,N.t)()],void 0,x.T,this.ee)),!0),(0,_.sp)("pagehide",(()=>(0,A.p)("winPagehide",[(0,N.t)()],void 0,x.T,this.ee))),this.importAggregator(e))}}var k=i(8154);class S extends y{static featureName=k.TZ;constructor(e,t=!0){super(e,k.TZ,t),p.RI&&document.addEventListener("securitypolicyviolation",(e=>{(0,A.p)(k.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,m.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,m.Zm)();delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,I,S],loaderType:"lite"})})()})();</script> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="apple-touch-icon" sizes="180x180" href="/wp-content/themes/wpx/assets/images/favicons/apple-touch-icon.png?v=1720078588"> <link rel="icon" type="image/png" sizes="32x32" href="/wp-content/themes/wpx/assets/images/favicons/favicon-32x32.png?v=1720078588"> <link rel="icon" type="image/png" sizes="16x16" href="/wp-content/themes/wpx/assets/images/favicons/favicon-16x16.png?v=1720078588"> <link rel="icon" type="image/png" sizes="192x192" href="/wp-content/themes/wpx/assets/images/favicons/android-chrome-192x192.png?v=1720078588"> <link rel="manifest" href="/wp-content/themes/wpx/assets/images/favicons/site.webmanifest?v=1720078588"> <link rel="mask-icon" href="/wp-content/themes/wpx/assets/images/favicons/safari-pinned-tab.svg?v=1720078588" color="#ff4438"> <link rel="shortcut icon" type="image/x-icon" href="/wp-content/themes/wpx/assets/images/favicons/favicon.ico?v=1720078588"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-TileImage" content="/wp-content/themes/wpx/assets/images/favicons/mstile-144x144.png?v=1720078588"> <meta name="msapplication-config" content="/wp-content/themes/wpx/assets/images/favicons/browserconfig.xml?v=1720078588"> <meta name="theme-color" content="#ffffff"> <!-- TrustArc --> <script async="async" src="https://consent.trustarc.com/notice?domain=redis.com&c=teconsent&js=nj¬iceType=bb&text=true>m=1"></script> <script>var __dispatched__ = {}; var __i__ = self.postMessage && setInterval(function(){ if(self.PrivacyManagerAPI && __i__){ var apiObject = {PrivacyManagerAPI: {action:"getConsentDecision", timestamp: new Date().getTime(), self: self.location.host}}; self.top.postMessage(JSON.stringify(apiObject),"*"); __i__ = clearInterval(__i__); }},50); self.addEventListener("message", function(e, d){ try{ if(e.data && (d= JSON.parse(e.data)) && (d = d.PrivacyManagerAPI) && d.capabilities && d.action=="getConsentDecision"){ var newDecision = self.PrivacyManagerAPI.callApi("getGDPRConsentDecision", self.location.host).consentDecision; newDecision && newDecision.forEach(function(label){ if(!__dispatched__[label]){ self.dataLayer && self.dataLayer.push({"event":"GDPR Pref Allows "+label}); __dispatched__[label] = 1; } }); } } catch(xx){} });</script> <!-- Mutiny ABM --> <script> (function(){var a=window.mutiny=window.mutiny||{};if(!window.mutiny.client){a.client={_queue:{}};var b=["identify","trackConversion"];var c=[].concat(b,["defaultOptOut","optOut","optIn"]);var d=function factory(c){return function(){for(var d=arguments.length,e=new Array(d),f=0;f<d;f++){e[f]=arguments[f]}a.client._queue[c]=a.client._queue[c]||[];if(b.includes(c)){return new Promise(function(b,d){a.client._queue[c].push({args:e,resolve:b,reject:d});setTimeout(d,500)})}else{a.client._queue[c].push({args:e})}}};c.forEach(function(b){a.client[b]=d(b)})}})(); </script> <script> window.mutiny.client.defaultOptOut(); </script> <script src="https://client-registry.mutinycdn.com/personalize/client/bfbc97d1462e0101.js"></script> <link rel='dns-prefetch' href='//client-registry.mutinycdn.com' ><link rel='preconnect' href='//client-registry.mutinycdn.com' crossorigin><link rel='dns-prefetch' href='//connect.facebook.net' ><link rel='preconnect' href='//connect.facebook.net' crossorigin><link rel='dns-prefetch' href='//www.googletagmanager.com' ><link rel='preconnect' href='//www.googletagmanager.com' crossorigin><link rel='dns-prefetch' href='//script.hotjar.com' ><link rel='preconnect' href='//script.hotjar.com' crossorigin> <script type="text/javascript"> if ('function' !== typeof getCookie) { function getCookie(name) { let value = `; ${document.cookie}`; let parts = value.split(`; ${name}=`); if (parts.length === 2) return parts.pop().split(';').shift(); } } </script> <link rel="alternate" hreflang="x-default" href="https://redis.io/legal/cloud-tos/"> <link rel="alternate" hreflang="en" href="https://redis.io/legal/cloud-tos/"> <link rel="icon" href="https://redis.io/wp-content/uploads/2024/07/android-chrome-512x512-1-100x100.png" sizes="32x32" /> <link rel="icon" href="https://redis.io/wp-content/uploads/2024/07/android-chrome-512x512-1-512x508.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://redis.io/wp-content/uploads/2024/07/android-chrome-512x512-1-512x508.png" /> <meta name="msapplication-TileImage" content="https://redis.io/wp-content/uploads/2024/07/android-chrome-512x512-1.png" /> <style type="text/css" id="wp-custom-css"> html body .absolute { position: absolute !important; z-index: -1; } html body .bottom-0 { bottom: 0; } html body .left-0 { left: 0; } html body .margin-bottom-0 { margin-bottom: 0 !important; } @media (max-width: 1166px) { html body.alert-bar.mobile-nav-open .nav-primary .menu-nav-primary-container { top: 177px; } } body .wp-block-group.alignfull.new-m-spacing >.wp-block-group__inner-container { padding: 0 2.444rem; } .completely-different-m .red-arrow-hover .cta-txt-black:before, .completely-different-m .red-arrow-hover h3.cta-txt-black:after { background-image: none!important; } @media (max-width: 1024px) { body.page-template-glide-template.page-template .bounds .bounds-inner, body .wp-block-group.alignfull.new-m-spacing >.wp-block-group__inner-container { padding: 0 33px; } .completely-different-m .red.red-arrow-hover { padding: 0!important; } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper { align-items: center; display: flex; justify-content: space-around; padding: 1rem 1rem 1rem .5rem; } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper .wp-block-image.size-full img { height: 48px; width: 48px; } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper .wp-block-image.size-full { flex-basis: 25%: } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper .wp-block-image.show-on-tablet { flex-basis: 20%: } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper .wp-block-image.show-on-tablet img { margin-bottom: 50%; } .completely-different-m .red-arrow-hover h3.cta-txt-black:before { background-image: url(https://redis.io/wp-content/uploads/2025/02/arrow.svg)!important; background-size: 14px 14px; height: 14px; width: 14px; top: 50%; transform: translate(10px, -50%); } .completely-different-m .red-arrow-hover:hover h3.cta-txt-black:before { background-image: url(https://redis.io/wp-content/uploads/2025/02/arrow.svg)!important; background-size: 14px 14px; height: 14px; width: 14px; opacity: 1; top: 50%; transform: translate(0, -50%); background-position: unset!important; } .completely-different-m .red-arrow-hover:hover h3.cta-txt-black:after { background-size: 14px 14px; height: 14px; width: 14px; opacity: 0; top: 50%; transform: translate(10px, -50%) background-position: unset!important; } .completely-different-m .red-arrow-hover h3.cta-txt-black:after { background-image: url(https://redis.io/wp-content/themes/redislabs-glide/assets/dist/images/arrow-black.svg)!important; background-size: 14px 14px; height: 14px; width: 14px; opacity: 1; top: 50%; transform: translate(0, -50%) } .redis-is-free s { text-decoration: none!important; } .mb-33-m { margin-bottom: 15px!important; } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper .wp-block-image.show-on-tablet img { width: 11.49px; height: 9.89px; } .completely-different-m .wp-block-rediscustom-linkwrapper.redislink-wrapper h3.cta-txt-black { font-size: 18.057px !important; flex-basis: 68%; padding-right: 30px; margin-bottom: 0 !important; font-family: "Space Grotesk"; height: 49px; display: flex ; align-items: center; } .hide-on-tablet { display: none!important; } .show-on-tablet.wp-block-image, .show-on-tablet.wp-block-spacer { display: block!important; } .mr-30-m { margin-right: 34px!important; } .mb-m-26 { margin-bottom: 19px!important; } .only-48-m { width: 48px!important; flex-basis: 48px!important; } .shadow-single-card h3.shadow-card-title.wp-block-heading, .font-20-m { font-size: 20px!important; font-weight: 500; } .margin-bottom-0.mt-19-m.has-text-color.has-link-color { margin-top: 19px!important; } .shadow-single-card h2.shadow-card-title, h2.wp-block-heading.shadow-card-title.margin-bottom-0, .shadow-card-title.mb-42.wp-block-heading, .shadow-card-title.left-align-m.wp-block-heading { font-size: 32px; line-height: 38.4px; } .shadow-card-title.left-align-m.has-text-align-center { text-align: left; } .shadow-single-card .wp-block-separator.has-text-color.has-alpha-channel-opacity.has-background.is-style-wide { width: 202px; margin-left: 0; } .shadow-card-title.mb-42.wp-block-heading { margin-bottom: 32px; } .mobile-23 { height: 14px!important; } .mobile-64 { height: 64px!important; } .mobile-29 { height: 29px!important; } .mobile-21 { height: 16px!important; } .center-link-m { display: block!important; width: max-content; margin: auto; } .font-18-m { font-size: 18px!important; text-align: center; } .mobile-46 { height: 46px!important; } .mobile-166 { width: 166px!important; } html body.page-template-glide-template p.margin-bottom-0:last-child, .mb-0-m { margin-bottom: 0!important; } .mobile-full-width { width: 100%; } } .show-on-tablet { display: none!important; } .alertbar-container img { margin-right: 5px; } .redis-experts-block .partner-section .partner-grid .partner-logo img { height: auto; width: auto; } .header-hero-title, .header-hero-subtitle { text-align: center; } @media (min-width: 1280px) { .cloud-tabbing-section.tabsection.variation-2 .tab-content .col .box .number { font-size: 4.278rem; } } .customer-stories .story-cards .card .card-content .detail { min-height: 4.5rem; } html body.page-template-glide-template .bounds-inner p.arrow-btn a { text-decoration: none } html body.page-template-glide-template .bounds-inner p.cta-txt-black a:hover { color: #ff4438; } body.page-template-glide-template .bounds-inner p.cta-txt-white a { color: #fff; display: inline-block; font-family: "Space Mono"; font-size: .833rem; line-height: 1rem; overflow: hidden; padding-right: 20px; position: relative; } body.page-template-glide-template .bounds-inner p.cta-txt-white.arrow-btn a { padding-right: 0; } body.page-template-glide-template .bounds-inner p.cta-txt-white a:hover { color: #dcff1e; } html body .max-five { margin-left: auto; margin-right: auto; } html body .max-nine-fifty { margin-left: auto; margin-right: auto; max-width: 950px; } .space-mono, .space-mono .syntaxhighlighter code, .space-mono .syntaxhighlighter textarea { font-family: "Space Mono"!important; line-height: 2rem!important;} .red-border-top { border-top: 11px solid #FF4438!important; outline: .056rem solid #8A99A0; border-right: none!important; border-left: none!important; border-bottom: none!important; border-radius: 10px!important; } .blue-border-top { border-top: 11px solid #80DBFF!important; outline: .056rem solid #8A99A0; border-right: none!important; border-left: none!important; border-bottom: none!important; border-radius: 10px!important; } .purple-border-top { border-top: 11px solid #2D4754!important; outline: .056rem solid #8A99A0; border-right: none!important; border-left: none!important; border-bottom: none!important; border-radius: 10px!important; } .border-right { border-right: 1px solid rgba(185, 194, 198, 0.50); } .border-radius-border-right { border-radius: 5px 0px 0px 5px; border-right: 2px solid var(--Dusk-Dusk, #163341); } .gap-0 { gap: 0!important; } .wp-block-cover.alignfull { display: block; width: 100vw; height: auto; max-width: 1000% !important; min-height: unset; margin-left: 50%; transform: translateX(-50%) !important; } .tab-controls .next-arrow, .prev-arrow { display: none; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow a, body.page-template-glide-template a.red-arrow, body.page-template-glide-template p.cta-txt-black.red-arrow a { color: #E4291E; height: 19px; line-height: 16px!important; font-size: 16px!important; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow-2 a, body.page-template-glide-template a.red-arrow-2, body.page-template-glide-template p.cta-txt-black.red-arrow-2 a { color: #FF4438; height: 19px; line-height: 16px!important; font-size: 16px!important; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow-2 a:hover, body.page-template-glide-template a.red-arrow-2:hover, body.page-template-glide-template p.cta-txt-black.red-arrow-2 a:hover, body.page-template-glide-template p.cta-txt-black.red-arrow-2:hover a, html body .bgmidnight .red-arrow-2.cta-txt-black:hover, html body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow-2.cta-txt-black:hover a { color: #FD736A!important; height: 19px; } html body .cta-txt-black.red-arrow-2:hover:before, html body .red-arrow.cta-txt-black:hover:before { background-position: unset!important; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow a:hover, body.page-template-glide-template a.red-arrow:hover, body.page-template-glide-template p.cta-txt-black.red-arrow a:hover, html body .bgmidnight .red-arrow.cta-txt-black:hover, html body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow.cta-txt-black:hover a { color: #8A221C!important; height: 19px; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow-2:after, body.page-template-glide-template a.red-arrow-2:after, body.page-template-glide-template p.cta-txt-black.red-arrow-2:after, body.page-template-glide-template p.cta-txt-black.red-arrow.arrow-btn:after{ background-image: url(https://redis.io/wp-content/uploads/2025/02/arrow.svg); background-size: 14px 14px; height: 14px; width: 14px; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow-2:before, body.page-template-glide-template a.red-arrow-2:before, body.page-template-glide-template p.cta-txt-black.red-arrow-2:before, body.page-template-glide-template p.cta-txt-black.red-arrow.arrow-btn:before { background-image: url(https://redis.io/wp-content/uploads/2025/02/arrow-2.svg); background-size: 14px 14px; height: 14px; width: 14px; } body.page-template-glide-template .bounds-inner .bgmidnight p.red-arrow:before, body.page-template-glide-template a.red-arrow:before, body.page-template-glide-template p.cta-txt-black.red-arrow:before, body.page-template-glide-template .red-arrow-hover p.cta-txt-black.red-arrow:before { background-image: url(https://redis.io/wp-content/uploads/2025/02/arrow-1.svg)!important; background-size: 14px 14px; height: 14px; width: 14px; } html body div:not(.bgmidnight) .cta-txt-black.red-arrow:after, html body .cta-txt-black.red-arrow:before { top: 50%; transform: translate(-10px, -50%); } html body .cta-txt-black.red-arrow:hover:before, body.page-template-glide-template .red-arrow-hover:hover p.cta-txt-black.red-arrow:before { top: 50%; transform: translate(0, -50%); opacity: 1; } body.page-template-glide-template .red-arrow-hover:hover p.cta-txt-black.red-arrow:after, body.page-template-glide-template .red-arrow-hover p.cta-txt-black.red-arrow:before { opacity: 0; transform: translate(-10px, -50%); top: 50%; } html body div:not(.bgmidnight) .cta-txt-black.red-arrow:after, html body .cta-txt-black.red-arrow:after { top: 50%; transform: translate(0, -50%); } body.page-template-glide-template .red-arrow-hover:hover p.cta-txt-black.red-arrow, body.page-template-glide-template a.red-arrow:hover { color: #8A221C!important; } body.page-template-glide-template .red-arrow-hover p.cta-txt-black.red-arrow, body.page-template-glide-template a.red-arrow { height: 19px; } body.page-template-glide-template .red-arrow-hover:hover { box-shadow: 0px 36px 10px 0px rgba(0, 0, 0, 0.00), 0px 23px 9px 0px rgba(0, 0, 0, 0.01), 0px 13px 8px 0px rgba(0, 0, 0, 0.02), 0px 6px 6px 0px rgba(0, 0, 0, 0.03), 0px 1px 3px 0px rgba(0, 0, 0, 0.04); } html body.page-template-glide-template p.cta-txt-black.red-arrow:after, html body.page-template-glide-template a.cta-txt-black.red-arrow:after { background-image: url(https://redis.io/wp-content/uploads/2025/02/arrow.svg); background-size: 14px 14px; height: 14px; width: 14px; } html body.page-template-gsap-animation-template.glide-bg-light-blue { background-color: white; } .three-card-block .column { border: 1px solid var(--dusk-dusk-30, #B9C2C6); } .border-none a, .border-none { border: none!important; } html body.page-template-glide-template .alignfull.wp-block-group.has-background.py-108 { padding-top: 6rem; padding-bottom: 6rem; } html body.page-template-glide-template .font-space-grotesk, html body.page-template-gsap-animation-template .font-space-grotesk a, html body .wp-block-buttons .wp-block-button.font-space-grotesk .wp-element-button.wp-block-button__link{ font-family: "Space Grotesk"!important; } .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-3.wp-block-group-is-layout-flex, .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-1.wp-block-group-is-layout-flex{ gap: 30px; } @media (max-width: 781px) { html body.page-template-glide-template .hero-banner-wrap.solutions-banner.newest-banner .wp-block-image.show-on-tablet img { max-width: unset; width: 100%; } .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-3.wp-block-group-is-layout-flex .wp-block-group, .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-3.wp-block-group-is-layout-flex .wp-block-buttons, .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-3.wp-block-group-is-layout-flex .wp-block-button, .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-1.wp-block-group-is-layout-flex .wp-block-buttons, .wp-block-group.button-flex-group.button-gap-24.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-1.wp-block-group-is-layout-flex .wp-block-button { width: 100%; } .wp-block-heading.page-title.mb-32.md-mb-32.has-none-font-family { font-size: 40px!important; } .wp-block-cover .cta-txt-black.red-arrow-2.arrow-btn.margin-top-0.font-space-grotesk { margin: auto; } .wp-block-cover .wp-block-columns.column-gap-32.column-grid.mb-0.hero-banner-wrap.solutions-banner.newest-banner.is-layout-flex.wp-container-core-columns-is-layout-1.wp-block-columns-is-layout-flex { padding-bottom: 0; } .wp-block-group.shadow-single-card { margin: -176px auto; padding: 23px 21px!important; } .random-badge.size-full { bottom: unset; right: -30px; top: 114px; } } html body .accordion-content.acc-cont.show .acc-con-space .info-content a:hover { color: #E4291E; } h3.ttl { font-weight: 500; } html body.page-template-gsap-animation-template .font-space-grotesk a, html body.page-template-gsap-animation-template .font-space-grotesk .red-arrow { font-family: "Space Grotesk"!important; height: 19px; line-height: 16px!important; font-size: 16px!important; } .new-cards .three-card-block .column { border-radius: 10px; padding: 32px 32px 28px 32px; } .new-cards .three-card-block.three-plus { justify-content: center; flex-wrap: wrap!important; } .new-cards .three-card-block.three-plus .column { flex-basis: 30%; max-width: 347px; } .new-cards h3.wp-block-heading.ttl { display: flex; align-items: flex-end; } .new-cards p.cta-txt-black.red-arrow.margin-bottom-0 { margin-bottom: 0!important; line-height: 16px; } .new-cards .three-card-block .column .wp-block-image.size-full { margin-bottom: 2.43px!important; min-height: 0; } .new-cards .three-card-block .column .content-area { min-height: 100px!important; margin-bottom: 0; } .backandforth h2 { line-height: 38.4px!important; } .wp-block-group.button-flex-group.is-nowrap.is-layout-flex.wp-container-core-group-is-layout-2.wp-block-group-is-layout-flex { gap: 32px; } @media (min-width: 798px) and (max-width: 1600px) { .wp-block-cover.over-sized-desktop:not(.a-bit-smaller-though) img.wp-block-cover__image-background { width: 112%; } } .wp-block-cover.over-sized-desktop { background: var(--Gradient, linear-gradient(180deg, #163341 0.05%, #091A23 118.36%)); } .wp-block-cover.over-sized-desktop:not(.a-bit-smaller-though) img.wp-block-cover__image-background { max-width: 2103px; margin: auto; } .wp-block-cover.over-sized-desktop.a-bit-smaller-though img.wp-block-cover__image-background { max-width: 1480px; margin: auto; } @media (max-width: 798px) { .wp-block-cover:not(.center-mobile) img { object-position: left top; } html body .giant-title.rdi-page-heading br { display: block; } .newest-banner h2.wp-block-heading.margin-bottom-0 { font-size: 20px!important; line-height: 24px!important; margin-bottom: 31px!important; } .newest-banner .font-space-grotesk.margin-top-0.has-white-color.has-text-color.has-link-color { margin-bottom: 0; } } @media (max-width: 1255px) { h1.giant-title { font-size: 100px!important; line-height: 85px!important; } } .shadow-single-card { border-radius: 10px; border: 1px solid var(--dusk-dusk-10, #D9D9D9); background: var(--Redis-White, #FFF); box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.10); max-width: 428px; padding: 42px!important; position: relative; } .shadow-single-card h3.shadow-card-title { color: var(--Redis-Ink, #091A23); font-size: 24px; font-weight: 600; line-height: 26px; margin-bottom: 0; } .shadow-single-card h2.shadow-card-title, h2.wp-block-heading.shadow-card-title { font-size: 40px; font-weight: 500; line-height: 50px; } .regular-cards h3.board-heading-title { color: var(--Base-Midnight, #091A23); font-feature-settings: 'liga' off, 'clig' off; font-size: 20px; font-style: normal; font-weight: 500; line-height: 24px; } .regular-cards .board-content { color: var(--Midnight, #091A23); font-family: "Space Grotesk"; font-size: 16px!important; line-height: 25.6px; } .regular-cards .wp-block-column { display: flex; flex-direction: column; justify-content: space-around; } .regular-cards .wp-block-column .red-arrow { width: max-content; } .shadow-single-card h2.shadow-card-title strong { font-size: 16px; font-weight: 400; line-height: 160%; } .shadow-single-card p sub { color: var(--dusk-dusk-90, #2D4754); font-size: 12px; font-style: normal; font-weight: 400; line-height: 18px; } .gap-19 { gap: 19px!important; } .gap-14 { gap: 14px!important; } .max-1114 { margin: auto; max-width: 1114px; } .redis-is-free { cursor: pointer; width: max-content; } .redis-is-free s { text-decoration-line: underline; text-decoration-style: solid; text-decoration-skip-ink: auto; text-decoration-thickness: auto; text-underline-offset: auto; text-underline-position: from-font; } .tooltip-content { opacity: 0; position: absolute; padding: 13.5px 26.5px; border-radius:4px; top: 104px; transition: all .3s; left: 80px; } .redis-is-free:hover .tooltip-content { opacity: 1; } .tooltip-content::before { content: ""; position: absolute; top: -8px; left: 50%; transform: translateX(-50%); border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 10px solid white; } html body.page-template-glide-template p.margin-bottom-0.margin-top-0:last-child { margin-top: 0!important; margin-bottom: 0!important; } .gap-8 { gap: 8px!important; } .tooltip-content .wp-block-column p { color: var(--Redis-Midnight, #163341); font-size: 16px; font-style: normal; font-weight: 400; line-height: 25.6px; } h5.dark-back-superscript { color: var(--dusk-dusk-30, #B9C2C6); font-feature-settings: 'liga' off, 'clig' off; font-family: "Space Mono"; font-size: 14px; font-style: normal; font-weight: 400; line-height: 16.8px; letter-spacing: 1.5px; text-transform: uppercase; } html body .cta-txt-black.red-arrow { font-family: "Space Grotesk"!important; } .random-badge { position: absolute; bottom: 115px; height: 147px; right: -75px; width: 147px; } .random-badge img { width: 100%; } html body.page-template-glide-template .accordion-with-logo-content .acc-container .wp-block-column.acc-logo-grid .logo-kicker { margin-top: 0 !important; } #star-top, #star-bottom { transform-origin: center; transition: transform 0.5s; } html body header.header-main .header-main-outer ul#menu-nav-primary li.special-menu-link:hover span.inner { font-weight: 400; transition: all .5s!important; } html body header.header-main .header-main-outer ul#menu-nav-primary li.special-menu-link:hover span.inner a { font-weight: 400; } @media (max-width: 1166px) { .nav-primary .special-menu-link .inner { border: none!important; display: flex!important ; flex-direction: row-reverse; } .header-main-outer ul#menu-nav-primary li:hover span.inner { border: none!important; } } html body header.header-main .header-main-outer ul#menu-nav-primary li span.inner a { transition: all .5s!important; } .nav-primary .special-menu-link:hover .inner { border: 1px solid var(--Base-Hyper, #ff4438); } .nav-primary .special-menu-link .inner { border-radius: 20px; border: 1px solid var(--Base-Midnight, #091a23); padding: 4px 16px 4px 36px; padding-bottom: 4px !important; transition: all .5s; } h1.wp-block-heading.has-text-align-center.max-one-thousand { font-size: 180px; } @media (max-width: 1166px) { h1.wp-block-heading.has-text-align-center.max-one-thousand { font-size: 90px; } html body header.header-main .header-main-outer ul#menu-nav-primary li { width: calc(100% - 32px); display: block; } .nav-primary .special-menu-link .inner svg { position: unset; margin-left: 11px; } html body header.header-main .header-main-outer ul#menu-nav-primary li.special-menu-link span.inner span { width: max-content!important } } html[lang="fr"] .nav-primary .special-menu-link .inner svg { left: -138px; } .slug-try-free .sso-link, .slug-try-free .wp-block-button__link.has-white-background-color.has-background.wp-element-button.no-shuffle { border-color: #B9C2C6!important; color: #091A23!important; } .slug-try-free .sso-link, .slug-try-free .wp-block-button__link.has-white-background-color.has-background.wp-element-button.no-shuffle:hover { border-color: #B9C2C6!important; color: white!important; } html body.page-template-glide-template a.cta-txt-black.red-arrow:after, html body.page-template-glide-template p.cta-txt-black.red-arrow:after { filter: unset!important; } html body:not(.slug-try-free) .wp-block-buttons .wp-block-button:not(.full-width__mobile) .wp-element-button.no-shuffle.wp-block-button__link { display: unset; } html body:not(.slug-try-free) .wp-block-buttons .wp-block-button.full-width__mobile .wp-element-button.no-shuffle.wp-block-button__link { display: block; } html body .red-arrow.cta-txt-black:before { background-position: unset!important; visibility: visible!important; } html body header.header-main .header-main-outer nav.nav-utility .wp-block-columns .wp-block-column .wp-block-button a.wp-block-button__link.try-free-header { -moz-transition: none; background-color: #e4291e; border: 0; border-radius: 0; color: white !important; padding: 1.25rem 1.5rem 1.43rem !important; -webkit-transition: none; transition: none; } html body.page-template-glide-template p.max-six-fifty { line-height: 120%; } html body .bookmark a img { position: relative; top: 5px; margin-right: 24px; } html body .wp-block-buttons .bookmark .wp-element-button.wp-block-button__link.no-shuffle:hover { color: #8A221C!important; background-color: #FFDAD8CC!important; } html body .wp-block-buttons .secondary-button .wp-element-button.wp-block-button__link.no-shuffle { border: 1px solid #FF4438!important; color: #FF4438!important; background-color: transparent!important; } html body .wp-block-buttons .secondary-button .wp-element-button.wp-block-button__link.no-shuffle:hover { border: 1px solid #FD736A!important; color: #FD736A!important; background-color: #8A221C80!important; } @media (max-width: 767px) { body .wp-block-group.alignfull.align-full>.wp-block-group__inner-container { padding: 0 35px!important; } } </style> <link rel="preload" href="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/fonts/TTTrailers-Bd.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/fonts/TTTrailers-Bd.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/fonts/SpaceMono-Regular.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/fonts/SpaceMono-Regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/fonts/SpaceGrotesk-Regular.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/fonts/SpaceGrotesk-Regular.woff2" as="font" type="font/woff" crossorigin> <style type="text/css"> :root { --white-paper: #ff2828; --data-sheet: #5925e8; --e-book: #e7ea25; --blog: #dcff1e; --case-study: #ff2828; --partners: #5925e8; --press: #c795e3; --documents: #80dbff; --page: #163341; --eventwebinar: #ff4438; } </style> </head> <body style="" class="page-template-default page page-id-94349 page-child parent-pageid-461 wp-embed-responsive alert-bar rcplan-nones slug-cloud-tos has-children"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TKZ6J9R" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- alert bar --> <div id="alert-bar" class="alert"> <!-- wp:rediscustom/linkwrapper {"url":"/resources/mit-report-genai/","isNewTab":false,"className":"full-width"} --> <a href="/resources/mit-report-genai/" class="wp-block-rediscustom-linkwrapper redislink-wrapper full-width" target="" rel="noopener"><!-- wp:group {"style":{"color":{"background":"#163341"}},"className":"alertbar-container"} --> <div class="wp-block-group alertbar-container has-background" style="background-color:#163341"><!-- wp:spacer {"height":"12px"} --> <div style="height:12px" aria-hidden="true" class="wp-block-spacer"></div> <!-- /wp:spacer --> <!-- wp:columns {"verticalAlignment":"center","className":"max-nine-fifty justify-center margin-bottom-0"} --> <div class="wp-block-columns are-vertically-aligned-center max-nine-fifty justify-center margin-bottom-0"><!-- wp:column {"verticalAlignment":"center","width":"79%","className":"margin-bottom-0"} --> <div class="wp-block-column is-vertically-aligned-center margin-bottom-0" style="flex-basis:79%"><!-- wp:paragraph {"style":{"typography":{"fontSize":"15px"}},"textColor":"white","className":"margin-top-0 margin-bottom-0"} --> <p class="margin-top-0 margin-bottom-0 has-white-color has-text-color" style="font-size:15px"><img class="wp-image-157089" style="width: 11px;" src="https://redis.io/wp-content/uploads/2022/12/Ellipse-47.svg" alt="dot"> Stop testing, start deploying your AI apps. See how with MIT Technology Review’s latest research.</p> <!-- /wp:paragraph --></div> <!-- /wp:column --> <!-- wp:column {"verticalAlignment":"center","width":"12%"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:12%"><!-- wp:paragraph {"style":{"color":{"text":"#dcff1e"},"typography":{"fontSize":"15px"}},"className":"cta green no-format margin-top-0 margin-bottom-0"} --> <p class="cta green no-format margin-top-0 margin-bottom-0 has-text-color" style="color:#dcff1e;font-size:15px">Download now</p> <!-- /wp:paragraph --></div> <!-- /wp:column --></div> <!-- /wp:columns --> <!-- wp:spacer {"height":"12px"} --> <div style="height:12px" aria-hidden="true" class="wp-block-spacer"></div> <!-- /wp:spacer --></div> <!-- /wp:group --></a> <!-- /wp:rediscustom/linkwrapper --> </div> <header class="header-main"> <div class="header-main-outer"> <div class="header-main-wrap"> <a href="https://redis.io/" class="logo-primary"> <img class="logo-full" width="117px" height="40px" src="https://redis.io/wp-content/uploads/2024/04/Logotype.svg?auto=webp&quality=85,75&width=120" alt="White Redis Logo"> </a> <a id="mobile-sub-menu-back-btn" class="desktop-hidden" href="javascript:void(0);">Back</a> <nav class="nav-primary"> <!-- Primary navigation menu --> <div class="menu-nav-primary-container"> <ul id="menu-nav-primary" class="menu"> <!-- Top-level menu item --> <li id="menu-item-167779" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-167779 special-menu-link sub-menu-toggler "> <span class="inner"> <!-- Menu item title --> <span title="Redis for AI"><a href="/redis-for-ai/">Redis for AI</a></span> </span> </li> <!-- Top-level menu item --> <li id="menu-item-163976" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163976 sub-menu-toggler "> <span class="inner"> <!-- Menu item title --> <span title="Products">Products</span> </span> <ul class="sub-menu"> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <div class="column-1"> <!-- First column of megamenu --> <li id="menu-item-163977" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163977 col-1 two-grid subcustom"> <span>Products</span><ul class="sub-menu"><li id="menu-item-163978" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163978 "> <a href="/cloud/"> Redis Cloud<span class="subcontent">Fully managed and integrated with Google Cloud, Azure, and AWS.</span></a> <ul class="sub-menu"></ul> </li><li id="menu-item-163984" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163984 "> <a href="/redis-for-ai"> Redis for AI<span class="subcontent">Build the fastest, most reliable GenAI apps with our advanced vector database.</span></a> <ul class="sub-menu"></ul> </li><li id="menu-item-163983" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163983 "> <a href="/software/"> Redis Software<span class="subcontent">Self-managed software with enterprise-grade compliance and reliability.</span></a> <ul class="sub-menu"></ul> </li><li id="menu-item-163980" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163980 "> <a href="/data-integration/"> Redis Data Integration (RDI)<span class="subcontent">Synchronize data in near-real time to make data fast—without writing code.</span></a> <ul class="sub-menu"></ul> </li><li id="menu-item-163982" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163982 "> <a href="/community-edition/"> Community Edition<span class="subcontent">In-memory database for caching & streaming.</span></a> <ul class="sub-menu"></ul> </li></ul> </li> </div> <div class="column-3"> <!-- Third column of megamenu --> <li id="menu-item-163985" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163985 col-3"> <span>Tools</span><ul class="sub-menu"><li id="menu-item-163986" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163986 "> <a href="/insight/"> Redis Insight</a> <ul class="sub-menu"></ul> </li><li id="menu-item-163987" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163987 "> <a href="/clients/"> Clients and connectors</a> <ul class="sub-menu"></ul> </li></ul> </li><li id="menu-item-163988" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163988 col-3"> <span>Get Redis</span><ul class="sub-menu"><li id="menu-item-163989" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163989 submenu-btn"> <a href="/downloads/"> Downloads</a> <ul class="sub-menu"></ul> </li></ul> </li> </div> </ul> </li> <!-- Top-level menu item --> <li id="menu-item-163990" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163990 sub-menu-toggler "> <span class="inner"> <!-- Menu item title --> <span title="Resources">Resources</span> </span> <ul class="sub-menu"> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <!-- First column of megamenu --> <!-- Second column of megamenu --> <!-- Third column of megamenu --> <div class="column-1"> <!-- First column of megamenu --> <li id="menu-item-163991" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163991 col-1 three-grid"> <span>CONNECT</span><ul class="sub-menu"><li id="menu-item-163992" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163992 "> <a href="/customers/"> Customer Stories</a> <ul class="sub-menu"></ul> </li><li id="menu-item-163996" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163996 "> <a href="https://redis.io/partners/"> Partners</a> <ul class="sub-menu"></ul> </li><li id="menu-item-163993" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163993 "> <a href="/support/"> Support</a> <ul class="sub-menu"></ul> </li><li id="menu-item-163994" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163994 "> <a href="/community/"> Community</a> <ul class="sub-menu"></ul> </li><li id="menu-item-163995" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163995 "> <a href="/events/"> Events & Webinars</a> <ul class="sub-menu"></ul> </li><li id="menu-item-163997" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163997 "> <a href="https://redis.io/services/professional-services/"> Professional Services</a> <ul class="sub-menu"></ul> </li></ul> </li><li id="menu-item-163998" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-163998 col-1 three-grid"> <span>Learn</span><ul class="sub-menu"><li id="menu-item-163999" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-163999 "> <a href="/docs/"> Docs</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164000" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164000 "> <a href="/commands/"> Commands</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164001" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164001 "> <a href="/docs/get-started/"> Quick starts</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164002" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164002 "> <a href="/learn/"> Tutorials</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164003" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164003 "> <a href="/university/"> University</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164004" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164004 "> <a href="/kb/"> Knowledge base</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164005" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164005 "> <a href="/resources/"> Resources</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164006" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-164006 "> <a href="/blog/"> Blog</a> <ul class="sub-menu"></ul> </li></ul> </li> </div> <div class="column-3"> <!-- Third column of megamenu --> <li id="menu-item-164007" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164007 col-3"> <span>LATEST</span><ul class="sub-menu"><li id="menu-item-164008" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164008 "> <a href="/release/"> Releases</a> <ul class="sub-menu"></ul> </li><li id="menu-item-164009" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164009 "> <a href="/company/news/"> News & updates</a> <ul class="sub-menu"></ul> </li></ul> </li><li id="menu-item-164010" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164010 col-3"> <span>See how it works</span><ul class="sub-menu"><li id="menu-item-164011" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164011 submenu-btn"> <a href="/demo-center/"> Visit Demo Center</a> <ul class="sub-menu"></ul> </li></ul> </li> </div> </ul> </li> <!-- Top-level menu item --> <li id="menu-item-164012" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-164012 center-submenu sub-menu-toggler "> <span class="inner"> <!-- Menu item title --> <span title="Docs"><a href="/docs/">Docs</a></span> </span> </li> <!-- Top-level menu item --> <li id="menu-item-164013" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-164013 sub-menu-toggler "> <span class="inner"> <!-- Menu item title --> <span title="Pricing"><a href="/pricing/">Pricing</a></span> </span> </li> </ul> <!-- Mobile buttons --> <div class="mobile-buttons"> <!-- wp:columns {"verticalAlignment":"center","className":"margin-bottom-0"} --> <div class="wp-block-columns are-vertically-aligned-center margin-bottom-0"><!-- wp:column {"verticalAlignment":"center","width":"140px"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:140px"><!-- wp:buttons --> <div class="wp-block-buttons"><!-- wp:button {"textColor":"white","className":"menu-primary-btn"} --> <div class="wp-block-button menu-primary-btn"><a class="wp-block-button__link has-white-color has-text-color wp-element-button" href="/try-free/">Try Redis</a></div> <!-- /wp:button --></div> <!-- /wp:buttons --></div> <!-- /wp:column --> <!-- wp:column {"verticalAlignment":"center","width":"130px"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:130px"><!-- wp:rediscustom/linkwrapper {"id":"nav-contact","url":"/meeting/"} --> <a href="/meeting/" id="nav-contact" class="wp-block-rediscustom-linkwrapper redislink-wrapper undefined" target="" rel="noopener"><!-- wp:paragraph {"className":"menu-secondary-btn"} --> <p class="menu-secondary-btn">Book a meeting</p> <!-- /wp:paragraph --></a> <!-- /wp:rediscustom/linkwrapper --></div> <!-- /wp:column --> <!-- wp:column {"verticalAlignment":"center","width":"80px"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:80px"><!-- wp:paragraph {"className":"menu-txt-cta "} --> <p class="menu-txt-cta"><a href="https://app.redislabs.com/" target="_blank" rel="noreferrer noopener">Login</a></p> <!-- /wp:paragraph --></div> <!-- /wp:column --></div> <!-- /wp:columns --> </div> </div> <!-- Mobile menu --> <div class="mobile-sub-menu" style="display:none;"> <div class="mobile-sub-menu-content"></div> </div> </nav> <nav class="nav-utility" data-header="nav-utility"> <a href="javascript:void(0);" class="header-search" href="#"> <img alt="search" width="21px" height="21px" src="/wp-content/themes/redislabs-glide/assets/src/images/search-icon.svg"> </a> <!-- wp:columns {"verticalAlignment":"center","className":"margin-bottom-0"} --> <div class="wp-block-columns are-vertically-aligned-center margin-bottom-0"><!-- wp:column {"verticalAlignment":"center","width":"80px"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:80px"><!-- wp:paragraph {"className":"margin-top-0 margin-bottom-0"} --> <p class="margin-top-0 margin-bottom-0"><a href="https://cloud.redis.io">Login</a></p> <!-- /wp:paragraph --></div> <!-- /wp:column --> <!-- wp:column {"verticalAlignment":"center","width":"130px"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:130px"><!-- wp:rediscustom/linkwrapper {"id":"nav-contact","url":"/meeting/"} --> <a href="/meeting/" id="nav-contact" class="wp-block-rediscustom-linkwrapper redislink-wrapper undefined" target="" rel="noopener"> <!-- wp:paragraph {"className":"margin-top-0 margin-bottom-0"} --> <p class="margin-top-0 margin-bottom-0">Book a meeting</p> <!-- /wp:paragraph --> </a> <!-- /wp:rediscustom/linkwrapper --></div> <!-- /wp:column --> <!-- wp:column {"verticalAlignment":"center","width":"140px"} --> <div class="wp-block-column is-vertically-aligned-center" style="flex-basis:140px"><!-- wp:buttons --> <div class="wp-block-buttons"><!-- wp:button {"textColor":"white"} --> <div class="wp-block-button"><a class="try-free-header wp-block-button__link has-white-color has-text-color wp-element-button" href="/try-free/">Try Redis</a></div> <!-- /wp:button --></div> <!-- /wp:buttons --></div> <!-- /wp:column --></div> <!-- /wp:columns --> <a href="#" class="toggle-tablet-menu" data-header="toggle-tablet-menu"> <div class="responsive-menu hide"></div> <span></span> <span></span> <span></span> </a> <div class="nav-mobile-close"> <div class="nav-mobile-close-inner"> <a class="close-nav-mobile" data-mobile="close-nav-mobile"> <img alt="close" src="/wp-content/themes/redislabs-glide/assets/dist/images/close-icon.svg"> </a> </div> </div> </nav> <div class="search-model-main"> <div class="search-model-inner"> <div class="search-model-close-btn"><img decoding="async" src="/wp-content/uploads/2023/11/UI-Flexible.svg?auto=webp&quality=85,75&width=80" alt="" style="object-fit:cover;width:20px;height:20px" loading="lazy"></div> <div class="search-model-wrap" data-header="search-wrap"> <div class="pop-up-content-wrap"> <div class="header-search-title">Search</div> <form id="searchForm" action="https://redis.io" method="get"> <div class="searchbox"> <label for="searchInput">Search:</label> <input type="text" name="s" placeholder="Search" id="search-field" maxlength="100" data-header="search-field"> <button type="submit"><img src="/wp-content/themes/redislabs-glide/assets/src/images/search-icon.svg"></button> </div> </form> </div> </div> </div> </div> </div> </div> </header> <div class="block-header-hero"> <div class="header-hero-wrap"> <header> <h1 class="header-hero-title">Redis Cloud Agreement</h1> <p class="header-hero-subtitle"><em>(Also known as the Redis Cloud Terms of Service or Redis Cloud ToS)</em></p> </header> </div> </div> <div class="bounds"> <div class="bounds-inner"> <p><em>Last Updated: October 4, 2024</em></p> <p>This Redis Cloud Agreement (“<strong>Agreement</strong>”) is entered into by and between Redis and the Customer identified in the applicable Transaction and is effective upon the completion of a Transaction, which may be through an Order Form, completing an online order, or agreeing to a Marketplace Transaction (“<strong>Effective Date</strong>”). Redis and Customer are each a “<strong>Party</strong>” and collectively the “<strong>Parties.</strong>” This Agreement forms a legally binding contract and describes the Parties’ rights and responsibilities. When you purchase Cloud Services, on behalf of an organization in acceptance of the terms of this Agreement, you represent and warrant that you have the authority to bind that organization.</p> <figure class="wp-block-table"><table><thead><tr><th>Appendices</th><th>Description</th></tr></thead><tbody><tr><td><strong>Appendix 1 </strong>– Private Cloud Deployment</td><td>If Customer elects to deploy the Cloud Services under Customer’s private cloud account, the additional provisions in <a href="#Appendix-1">Appendix 1</a> apply.</td></tr></tbody></table></figure> <p>The Parties hereby agree as follows:</p> <h2 class="wp-block-heading">1. Definitions.</h2> <p><strong>Administrator(s) </strong>means a person designated by the Customer to have access to the Cloud Services with the authority to administer the Cloud Services and who has a named account on <a href="http://www.redis.io">www.redis.io</a>.</p> <p><strong>Affiliate(s) </strong>means any company controlling, controlled by, or under common control with a Party, where control means ownership, directly or indirectly, of the shares of a company representing fifty percent (50%) or more of the voting rights in this company.</p> <p><strong>Cloud Services </strong>mean the generally available Redis Enterprise Cloud service, as specified in the applicable Transaction. Cloud Services do not include Previews or Evaluation Services.</p> <p><strong>Commercial Subscription </strong>means a paid or paying subscription to Cloud Services during the Subscription Term pursuant to a Transaction.</p> <p><strong>Committed Expenditure </strong>means the total expenditure committed by Customer for all Commercial Subscriptions of the Cloud Services during the Subscription Term, as specified in the applicable Transaction.</p> <p><strong>Customer Data</strong> means all data of any type submitted by or on behalf of Customer to the Cloud Services.</p> <p><strong>Customer Property </strong>means Customer Confidential Information and Customer Marks that may be included in Redis Materials.</p> <p><strong>Documentation </strong>means the technical or user documentation made available by Redis in connection with the Cloud Services, which may be modified from time to time at <a href="https://redis.io/docs/latest/" target="_blank" rel="noopener">https://redis.io/docs/latest/</a>.</p> <p><strong>Maintenance </strong>is the incorporation of new features, upgrades, updates, cluster optimization, patches, and/or bug fixes performed on the Cloud Services.</p> <p><strong>Marketplace </strong>means a third-party online marketplace such as Google Cloud Platform, Amazon Web Services, Microsoft Azure Cloud, or other platforms through which Customer completes a Transaction.</p> <p><a></a><strong>Marks</strong> means a Party’s trademarks, logos, and service marks.</p> <p><strong>Network Charges</strong> mean variable network charges associated with Customer’s usage of the Cloud Services.</p> <p><strong>Order Form </strong>means an ordering document or form, for the provision of Cloud Services and Services.</p> <p><strong>Partner</strong> means an authorized third-party reseller or distributor of the Cloud Services and Services.<strong></strong></p> <p><strong>Professional Services </strong>has the meaning specified in <a href="#Section-2.4">Section 2.4</a> (Professional Services).</p> <p><strong>Redis Materials</strong> means Documentation, templates, training materials, videos, and other items Redis may provide to Customer through the Cloud Services or as part of Professional Services.</p> <p><strong>Redis Tools </strong>means proprietary tools, libraries, know-how, techniques, and expertise used by Redis to develop Redis Materials.</p> <p><strong>Services</strong> means Support Services and Professional Services.</p> <p><strong>Service Level Agreement </strong>or <strong>SLA</strong> has the meaning specified in <a href="#Section-2.5">Section 2.5</a> (Service Level Agreement).</p> <p><strong>Software </strong>means the software required to provide Cloud Services.</p> <p><strong>Subscription Term </strong>means the period of the Commercial Subscription specified in a Transaction and includes the initial term and any renewal term.</p> <p><strong>Support Services </strong>has the meaning specified <a href="#Section-2.7">Section 2.7</a> (Support Services).</p> <p><strong>Transaction</strong> means the offer and acceptance by Customer of Cloud Services and/or Services through: (a) the execution of an Order Form or SOW; (b) completing an online order; (c) a purchase from a Partner; or (d) a Marketplace that includes the applicable pricing and licensing specifics of the Cloud Services.</p> <div style="height:40px" aria-hidden="true" id="Section-2" class="wp-block-spacer"></div> <h2 class="wp-block-heading">2. Access and Use of the Cloud Services.</h2> <p><strong>2.1 Access and License</strong>. Subject to the terms and conditions of this Agreement and the applicable Transaction, Redis shall, during the applicable Subscription Term, solely for Customer’s business purposes: (a) make the Cloud Services available to Customer up to the number of Cloud Services units specified in a Transaction; (b) allow Administrators to access Customer’s account in the Cloud Services; and (c) allow Customer to use any Redis Materials. Customer may allow an Affiliates to: (i) use the Software licensed by Customer under a Transaction; or (ii) execute a separate Transaction with Redis subject to the terms of this Agreement, provided that in both cases Customer is responsible for such Affiliate’s compliance with this Agreement. The Cloud Services and Software may contain portions that are separately available from Redis under open source or source available licenses. However, the license granted by Redis to Customer under this Agreement supersedes the terms of such licenses for those portions of the Cloud Services and Software. Software is licensed and not sold even if for convenience Redis refers to words such as sale or purchase.</p> <p id="Section-2.3"><strong>2.2 Acceptable</strong> <strong>Use</strong>. Customer must comply with and ensure its Administrators comply with the Acceptable Use Policy found at <a href="https://redis.io/legal/acceptable-use-policy">https://redis.io/legal/acceptable-use-policy</a>. Customer shall not (and shall not permit others to) do the following with the Cloud Services: (a) use it in a manner that intentionally circumvents contractual usage restrictions; (b) license, sub-license, sell, re-sell, rent, lease, transfer, distribute, timeshare, or otherwise make any of it available for access by third parties except as otherwise expressly provided in a Transaction; (c) access it for the purpose of developing or operating competing products or services offered to third parties; (d) disassemble, reverse engineer or decompile it; (e) copy, create derivative works based on, or otherwise modify it except as permitted in this Agreement; (f) remove or modify a copyright or other proprietary rights notice in it; (g) use it to create, use, send, store or run viruses or other harmful computer code, files, scripts, agents or other programs or otherwise engage in a malicious act or disrupt its security, integrity or operation; (h) use it to access without authorization, or disable, any Redis or third-party data, software or network; or (i) use it to send or store any sensitive personally identifiable information or store any sensitive personal data, as defined in the European General Data Protection Regulation (EU 2016/679) (“<strong>GDPR</strong>”).</p> <p id="Section-2.4"><strong>2.3 Customer Data</strong>. Customer grants to Redis, its Affiliates, and applicable contractors a worldwide, limited-term license to host, copy, transmit, and display Customer Data, as reasonably necessary for Redis to provide the Cloud Services. Customer will: (a) be solely responsible for the nature, quality, and accuracy of the Customer Data; (b) ensure that the Customer Data complies with the terms of this Agreement and all applicable laws; (c) promptly handle and resolve any notices and claims relating to the Customer Data; and (d) ensure that it has the rights to the Customer Data in order to grant Redis the rights specified by this Agreement. Redis has no liability to Customer or any third party as a result of: (i) any unauthorized disclosure or access to an Administrator’s account or Customer Data as a result of Customer’s or an Administrator’s misuse of the Cloud Services or loss or theft of any Administrator password or username, except to the extent resulting from Redis’ gross negligence or willful misconduct; (ii) any deletion, destruction, damage or loss of Customer Data caused by or at the direction of Customer or an Administrator; or (iii) Customer’s failure to maintain adequate security or virus controls in any devices used to access the Cloud Services. Redis may delete Customer’s usage history and data files that are older than 12 months. Unless otherwise agreed in writing by the Parties, Redis will delete Customer’s entire usage history and data files within 3 months after the termination of this Agreement.</p> <p id="Section-2.5"><strong>2.4 Professional Services</strong>. Professional Services are any professional, educational, operational, or technical services provided by Redis to Customer, as described in a mutually agreed upon SOW or as otherwise outlined in a Transaction. Each SOW or Transaction will include, at a minimum, a description of the Professional Services and any Redis Materials to be provided to Customer. Professional Services will be considered delivered: (a) within 90 days from the date of the applicable Transaction for a package purchased as pre-paid hours; or (b) for the annual plan, on a monthly pro-rata basis with the entirety of the package being delivered as of the end of applicable Subscription Term. Redis provides Customer with a limited, non-exclusive, non-sublicensable, non-transferable, revocable license during the Subscription Term to use Redis Materials and Redis Tools solely for Customer’s internal operations in connection with its authorized use of the Cloud Services and receipt of the Professional Services. Redis may use Customer Property solely to provide Professional Services to Customer. The performance of Professional Services is contingent on Customer promptly providing the relevant Customer Property.</p> <p><strong>2.5 Service Level Agreement. </strong>Subject to payment of the applicable fees, Redis will provide the Cloud Services and Maintenance pursuant to then-current Service Level Agreement described at <a href="https://redis.io/legal/redis-enterprise-cloud-service-level-agreement">https://redis.io/legal/redis-enterprise-cloud-service-level-agreement</a>. The SLA is automatically included with the license and fees for Cloud Services, and not separable from the license.</p> <p id="Section-2.7"><strong>2.6 Suspension</strong>. Customer is solely responsible for all activities conducted under its and its Administrators’ usernames on the Cloud Services. Redis may suspend an Administrator’s access and/or account for the Cloud Services, or remove, disable, or delete any Customer Data if Redis reasonably believes there has been a violation of this Agreement (including nonpayment of applicable fees by Customer) or any applicable laws or regulations. Redis agrees to provide Customer with reasonable notice of any such suspension disablement, or deletion before its implementation unless immediate suspension, disablement, or deletion is necessary to comply with legal process, regulation, order, or prevent imminent harm to the Cloud Services or any third party, in which case Redis will notify Customer to the extent possible and/or allowed by applicable law. If Redis suspends Customer’s right to access or use any portion of the Cloud Services, Customer remains responsible for all fees incurred prior to the suspension and Customer will not be entitled to any credit or refund.</p> <p><strong>2.7 Support Services</strong>. Subject to payment of the applicable fees, Redis will provide during the Subscription Term, one of the Support Service levels found at <a href="https://redis.io/legal/cloud-support-policy/">https://redis.io/legal/cloud-support-policy/</a> (the “<strong>Support Policy</strong>”) and specified in the corresponding Transaction documentation. The Support Policy is: (a) automatically included with the license and fees for the Cloud Services; and (b) not separable from the license. Evaluation Services and Previews are not eligible for Support Services.</p> <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div> <h2 class="wp-block-heading">3. Other Cloud Services. </h2> <p><strong>3.1 Evaluation Services. </strong>Redis may offer other cloud services at no charge (“<strong>Evaluation Services</strong>”), provided that such usage is limited to the capacity, number of units, or time limits designated in the Redis online price list at <a href="https://redis.io/pricing/">https://redis.io/pricing/</a>. Redis may discontinue or alter the Evaluation Services at any time without prior notice. Redis may, in its sole discretion, provide limited support for Evaluation Services; however, the Support Services, indemnities, warranties, and SLA do not apply to Evaluation Services. Customer agrees to use reasonable judgment and follow the Acceptable Use Policy prior to adding any Customer Data to the Evaluation Services. If Customer uses Evaluation Services, Redis may automatically delete Evaluation Services and associated data that have become inactive for more than 14 days.</p> <p><strong>3.2 Previews</strong>. Redis may offer pre-release previews of other cloud services or additional features and modules (“<strong>Previews</strong>“), which may be made available directly through the Redis website, or through a Marketplace. Previews are provided “as-is”, “with all faults”, and “as-available”, may not be used in any of Customer’s production environments, and are excluded from any indemnities, warranties, and the SLA provided in this Agreement. Previews may not operate at the level of performance or compatibility of final, generally available products. Redis: (a) is under no obligation to provide Support Services for Previews; (b) may change or discontinue Previews at any time; and (c) may choose not to release a Preview into general availability. Redis may, in its sole discretion, provide limited support to Previews. Previews are provided to Customer for a term of 30 days unless stated otherwise in the Transaction. Customer will convert the Preview into a Commercial Subscription within 90 days of Redis’ notice to Customer.</p> <div style="height:40px" aria-hidden="true" id="Section-4" class="wp-block-spacer"></div> <h2 class="wp-block-heading">4. Fees and Cloud Service Charges.</h2> <p><strong>4.1 Direct Fees.</strong> Customer agrees to pay all Transaction fees. Unless otherwise specified in a Transaction, all fees and other amounts are payable in United States Dollars. Except specified in this Agreement, all payment obligations under a Transaction are non-cancelable and all payments made are non-refundable. The fees exclude any applicable taxes. Accordingly, Customer shall pay applicable taxes and similar charges, including sales, usage, excise, and value-added taxes. Nothing in this Agreement requires either Party to pay income taxes or similar charges of the other Party. If applicable law requires Customer to withhold any amount from Customer’s payment, Customer will provide Redis with copies of documents related to Customer’s withholding, fully cooperate with Redis in seeking a waiver or reduction of such taxes, and promptly complete and file all relevant documents. Overdue payments are subject to a late charge of 1.5% per month. Fees for Commercial Subscriptions of the Cloud Services do not include fees related to usage-based infrastructure, or variable network costs. Nothing in the Agreement will require Redis to pay any fees for the use of a third-party payment processing system selected by Customer, and Redis will include any related fees for such system selected by Customer on applicable invoices. Any optional pricing must be explicitly stated in the Transaction. Unless otherwise stated in the Transaction, invoices for Professional Services that are not pre-paid will be submitted by Redis to Customer each calendar month for the preceding month.</p> <p><strong>4.2 Indirect Fees.</strong> If Customer’s Transaction is through a Marketplace or through a Partner, Customer agrees to pay all fees according to the standard Redis price list found at each Marketplace, including all applicable charges specified for the Cloud Services (including any charges for use in excess of authorizations). The Redis price list is exclusive of any customs or other duty, tax, and similar levies imposed by any authority. Customer agrees to pay any sales, value-added, or other similar taxes imposed by applicable law that Redis must pay based on the Transaction, except for taxes based on Redis’s income. Customer understands it will pay the applicable Marketplace or Partner instead of paying Redis directly. Customer’s acceptance of Marketplace or Partner pricing and terms and conditions binds Customer to the obligations of this Agreement and the applicable Transaction. If Customer purchases through a Marketplace or Partner, Customer will be responsible for full payment of the fees for the Subscription Term, regardless of usage, payment, or billing terms between Customer and the Marketplace or Partner. At the end of the Subscription Term, if there is a shortfall between the total amount paid by Customer to the Marketplace or Partner and the total fees listed in the applicable Transaction, Customer will pay the shortfall amount.</p> <p><strong>4.3 Cloud Services Charges</strong>. Unless otherwise specified in the applicable Transaction,Redis charges for the Cloud Services in accordance with: (a) Customer’s Committed Expenditure, and (b) its actual usage of the Cloud Services. Customer’s Committed Expenditure is charged to Customer’s account prior to the beginning of the Subscription Term. Customer shall pay the Committed Expenditure regardless of its level of use of the Cloud Services. For the avoidance of doubt, Customer shall be liable for the Committed Expenditure in full, even if any of the following events has occurred during the Subscription Term: (i) Customer has ceased to use the Cloud Services for any reason; and/or (ii) Customer has reduced its use of the Cloud Services below the Committed Expenditure. Network Charges from Customer’s applicable Marketplace are charged to Redis and passed through to Customer. Network Charges are not applicable for Private Cloud Deployments, where network costs are paid by the Customer directly to the cloud provider. Network Charges are charged to Customer’s account at the beginning of each calendar month with respect to the preceding month, or as otherwise set forth in the applicable Transaction.</p> <p><strong>4.4 Authorizing Payment. </strong>By providing a credit card or other payment method accepted by Redis (“<strong>Payment Method</strong>”) in connection with the Transaction, Customer is authorizing Redis to charge the applicable fees to the Payment Method. If applicable to a Transaction, Customer authorizes Redis to charge a recurring monthly charge based on the then-current Redis online price list.</p> <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div> <h2 class="wp-block-heading">5. Confidential Information.</h2> <p><strong>5.1 Definition</strong>. A Party may disclose Confidential Information to the other Party under this Agreement in furtherance of the business relationship (the “<strong>Purpose</strong>”). “<strong>Confidential Information</strong>” means non-public information disclosed by one Party (“<strong>Discloser</strong>”) to the other Party (“<strong>Recipient</strong>”) that is shared, whether orally or in writing, that is designated as confidential, or that reasonably should be understood to be confidential given the nature of the information and the circumstances of disclosure, including copies and derivatives. Confidential information includes the Software, Customer Property, Redis Materials, Redis Tools, the Agreement terms, the Transaction terms, and Redis security or other sensitive documentation (such as a SOC 2 Type II report). Confidential Information does not include information that: (a) is or becomes publicly available through no fault of Recipient; (b) was known to Recipient, free of any confidentiality obligations, before receipt; (c) becomes known to Recipient, free of any confidentiality obligations, from a source other than Discloser; or (d) is independently developed by Recipient without the use of Confidential Information.</p> <p><strong>5.2 Obligations</strong>. Recipient will not reproduce, use, disseminate, or disclose Confidential Information to any person or entity, except to its authorized employees, Affiliates, consultants, or advisors (collectively, “<strong>Representatives</strong>”), who need to know the Confidential Information to further the Purpose and are bound by obligations at least as restrictive as this Agreement before having access to Confidential Information. Recipient is responsible for the acts and omissions of its Representatives under this Agreement. Recipient will not modify, reverse engineer, create other works from, or disassemble any software programs contained in the Confidential Information without Discloser’s written approval. Recipient will treat all Confidential Information with at least the same degree of care as it treats its own information of similar sensitivity, but never less than reasonable care. Recipient may disclose Confidential Information: (a) upon Discloser’s written approval; and (b) as necessary to respond to a valid order by a court or governmental body, as required by law, or as necessary to establish the rights of either Party, provided that Recipient promptly notifies Discloser upon receipt of a disclosure order and requests confidential treatment of any affected Confidential Information. Subject to applicable law, Recipient shall comply with its confidentiality and nondisclosure obligations under this Agreement for 5 years after termination of the Agreement (except for trade secrets, which must be kept in confidence in perpetuity). Upon written request of the Discloser or at the termination of this Agreement, Recipient will promptly return to Discloser or destroy (or in the case of electronic data, use commercially reasonable efforts to delete or render practicably inaccessible by Recipient) Confidential Information of Discloser, except as otherwise required by law or pursuant to a bona fide archival or document retention policy.</p> <p><strong>5.3 Rights</strong>. All Confidential Information remains the property of Discloser. Recipient does not receive any license or intellectual property rights to Discloser’s Confidential Information. The Parties agree that the Recipient’s disclosure of Confidential Information, except as provided herein, may result in irreparable injury for which monetary damages may be inadequate. The Parties further agree that in the event of such disclosure or threatened disclosure, the Discloser may be entitled to seek an injunction to prevent the breach or threatened breach, in addition to remedies otherwise available to the Discloser at law or in equity. Notwithstanding anything to the contrary in this Agreement, if the Parties have executed a separate non-disclosure or confidentiality agreement (an “<strong>NDA</strong>”), this Section, to the extent applicable, will supersede and replace such NDA for the Purpose.</p> <div style="height:40px" aria-hidden="true" id="Section-6" class="wp-block-spacer"></div> <h2 class="wp-block-heading">6. Intellectual Property and Data Security.</h2> <p><strong>6.1 Ownership</strong>. As between Redis and Customer, all rights, title, and interest in and to all intellectual property rights in the Cloud Services, Evaluation Services, Previews, Software, Redis Materials (except to the extent of Customer Property incorporated therein), and Redis Tools are owned exclusively by Redis notwithstanding any other provision in this Agreement. Except as expressly provided in this Agreement, Redis reserves all rights in the Cloud Services, Previews, Software, Redis Tools, and Redis Materials and does not grant Customer any rights, express, implied, or by estoppel. Redis may inspect Customer’s records relating to its use of the Software to verify compliance with this Agreement for up to 1 year following termination. As between Redis and Customer, all rights, title, and interest in and to all intellectual property rights in Customer Data and Customer Property are owned exclusively by Customer notwithstanding any other provision in this Agreement.</p> <p><strong>6.2 Usage Data and Feedback</strong>. Except as expressly provided in this Agreement, Customer reserves all rights in the Customer Data and does not grant Redis any rights, express or implied, or by estoppel. Redis owns the statistical usage data derived from the operation of the Cloud Services (“<strong>Usage Data</strong>”). Nothing herein will be construed as prohibiting Redis from utilizing the Usage Data to optimize and improve the Cloud Services or otherwise operate Redis’ business. If Redis provides Usage Data to third parties, such Usage Data shall be de-identified and presented in the aggregate so that it will not disclose the identity of Customer to any third party.Redis encourages Customer to provide suggestions, proposals, ideas, recommendations, or other feedback regarding improvements to Redis’ products and services. If Customer provides such feedback, Customer grants to Redis a royalty-free, fully paid, sub-licensable, transferable, non-exclusive, irrevocable, perpetual, worldwide right and license to make, use, sell, offer for sale, import, and otherwise exploit feedback (including by incorporation of such feedback into the Cloud Services, Software or Redis Materials) without restriction.</p> <p><strong>6.3 Data Security and Data Privacy</strong>. Redis shall: (a) maintain appropriate administrative, physical, and technical safeguards to protect the security and integrity of the Cloud Services and the Customer Data; (b) protect the confidentiality of the Customer Data in accordance with the Agreement; and (c) access and use the Customer Data solely to perform its obligations under the Agreement or as otherwise permitted by Customer. These measures will conform with the Redis Technical and Organizational Security Measures (“<strong>TOMs</strong>”) available at <a href="https://redis.io/legal/redis-technical-and-organizational-security-measures/">https://redis.io/legal/redis-technical-and-organizational-security-measures/</a>. Redis will not materially diminish the protections in the TOMs during the Subscription Term. The Redis Data Processing Addendum available at <a href="https://redis.io/legal/data-processing-addendum-dpa/">https://redis.io/legal/data-processing-addendum-dpa/</a> (“<strong>DPA</strong>”) applies to Personal Data (as defined in the DPA) contained in Customer Data, to the extent: (i) the GDPR, or (ii) other data protection laws and regulations identified in the DPA, apply. Redis, its Affiliates, and applicable contractors may process business contact information (including, but not limited to, name, address, business telephone, email, and applicable user ID) of Customer, its personnel, Administrators, and other authorized users. Where consent by the individuals (or other notice) is required for such processing, Customer will notify and/or obtain such consent. The Redis Privacy Policy available at <a href="https://redis.io/legal/privacy-policy/">https://redis.io/legal/privacy-policy/</a> governs how Redis processes such data.</p> <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div> <h2 class="wp-block-heading">7. Warranty and Disclaimer.</h2> <p><strong>7.1 Cloud Services Warranty</strong>. Redis warrants that during the applicable Subscription Term: (a) the Cloud Services will perform materially in accordance with the applicable Documentation; (b) Redis shall make commercially reasonable efforts to make the Cloud Services available to Customer 24 hours a day, 7 days a week (except for any unavailability caused by a Force Majeure Event or Maintenance); (c) Redis will employ then-current, industry-standard measures to test the Cloud Services to detect and remediate viruses, Trojan horses, worms, logic bombs, or other harmful code or programs designed to negatively impact the operation or performance of the Cloud Services; and (d) it owns or otherwise has sufficient rights in the Cloud Services to grant to Customer the right to use the Cloud Services. If Customer believes there has been a breach of this warranty, Customer must promptly notify Redis in writing, stating in reasonable detail the nature of the alleged breach. If there has been a breach of this warranty, then the exclusive remedies will be for Redis to: (i) correct or replace the non-performing components of the Cloud Services at no additional charge to Customer; or (ii) if Redis fails to successfully correct the Cloud Services within a reasonable time of receipt of written notice from Customer detailing the breach, allow Customer to terminate the applicable Transaction and provide a pro-rated refund of the fees prepaid by Customer for the remainder of the Subscription.</p> <p><strong>7.2 Services Warranty</strong>. Redis warrants that the Services will be: (a) performed by Redis personnel with the necessary knowledge, skills, experience, qualifications, and resources to provide; and (b) performed in a work person-like manner consistent with industry standards. If Customer believes there has been a breach of this warranty, Customer must promptly notify Redis in writing following delivery of the Services stating in reasonable detail the nature of the alleged breach. If there has been a breach of this warranty through no fault of Customer, then the exclusive remedy will be for Redis to re-perform the affected Services at no additional charge.</p> <p><strong>7.3 Mutual Warranty</strong>. Each Party represents and warrants that this Agreement has been duly authorized, executed, and delivered and constitutes a valid and binding agreement enforceable against the other Party in accordance with its terms.</p> <p><strong>7.4 Disclaimer.</strong> EXCEPT AS PROVIDED IN THIS WARRANTY SECTION AND TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, THE CLOUD SERVICES (INCLUDING PREVIEWS AND EVALUATION SERVICES), SOFTWARE, SERVICES, AND REDIS MATERIALS ARE PROVIDED TO CUSTOMER “AS-IS” WITHOUT ANY WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, INTEGRATION, NON-INFRINGEMENT, TITLE, PERFORMANCE, SECURITY, AND ACCURACY AND ANY IMPLIED WARRANTIES ARISING FROM STATUTE, COURSE OF DEALING, COURSE OF PERFORMANCE, OR USAGE OF TRADE. ALL REDIS PRODUCTS AND SERVICES UNDER THIS AGREEMENT ARE NOT DESIGNED, MANUFACTURED, OR INTENDED FOR USE IN THE PLANNING, CONSTRUCTION, MAINTENANCE, CONTROL, OR DIRECT OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION, CONTROL OR COMMUNICATION SYSTEMS, WEAPONS SYSTEMS, DIRECT LIFE SUPPORT SYSTEMS, OR OTHER MISSION CRITICAL SYSTEMS. THE WARRANTIES OUTLINED IN THIS SECTION APPLY ONLY IF THE CLOUD SERVICES HAVE BEEN UTILIZED IN ACCORDANCE WITH THE DOCUMENTATION, THIS AGREEMENT (INCLUDING ANY TRANSACTION), AND APPLICABLE LAW.</p> <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div> <h2 class="wp-block-heading">8. Limitation of Liability.</h2> <p><strong>8.1 Limit on Direct Damages.</strong> TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL EITHER PARTY’S (OR THEIR AFFILIATES’) TOTAL AND CUMULATIVE LIABILITY, FOR ALL CLAIMS OF ANY NATURE ARISING OUT OF OR RELATED TO THIS AGREEMENT EXCEED THE TOTAL FEES PAID BY CUSTOMER TO REDIS FOR COMMERCIAL SUBSCRIPTIONS IN THE 12 MONTHS PRECEDING THE DATE OF THE FIRST EVENT WHICH GIVES RISE TO LIABILITY UNDER THIS AGREEMENT. THIS SECTION DOES NOT APPLY TO <a href="#Section-9">SECTION 9</a> (INDEMNIFICATION).</p> <p><strong>8.2 Indirect Damages Disclaimer.</strong> TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL EITHER PARTY BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, COVER, LOSS OF PROFITS OR REVENUE, LOSS OF GOODWILL, LOSS OF USE OF DATA, OR ANY CONSEQUENTIAL DAMAGES HOWEVER CAUSED, WHETHER BASED IN CONTRACT, TORT, WARRANTY, NEGLIGENCE OR ANY OTHER THEORY OF LIABILITY, EVEN IF SUCH PARTY HAS BEEN ADVISED AS TO THE POSSIBILITY OF SUCH DAMAGES.</p> <p><strong>8.3 Exceptions to the Limitation of Liability. </strong>THE LIMITATIONS OF LIABILITY AND DISCLAIMER OF DAMAGES DO NOT APPLY TO: (A) ANY OBLIGATION AS DESCRIBED IN <a href="#Section-4">SECTION 4</a> (FEES AND CLOUD SERVICE CHARGES), OR <a href="#Section-6">SECTION 6.1</a> (OWNERSHIP), INCLUDING PAYMENTS TO A THIRD PARTY; OR (B) ANY LIABILITY FOR: (I) DEATH OR BODILY INJURY CAUSED BY NEGLIGENCE; (II) GROSS NEGLIGENCE; (III) WILLFUL MISCONDUCT; OR (IV) ANYTHING ELSE THAT CANNOT BE LIMITED BY LAW. NEITHER PARTY’S THIRD-PARTY LICENSORS NOR SUPPLIERS HAVE ANY LIABILITY UNDER THIS AGREEMENT. THE PARTIES AGREE THAT LIMITATIONS OF LIABILITY IN THIS AGREEMENT ARE INTENDED TO SURVIVE IF A PARTY’S REMEDY FAILS OF ITS ESSENTIAL PURPOSE AND THAT THE FEES FOR CLOUD SERVICES AND SERVICES WOULD HAVE BEEN GREATER WITHOUT THEM.</p> <div style="height:40px" aria-hidden="true" id="Section-9" class="wp-block-spacer"></div> <h2 class="wp-block-heading">9. Indemnification.</h2> <p><strong>9.1 Indemnification by Redis</strong>. Redis will defend Customer against any third-party claim that the Cloud Services infringe a registered patent, registered Mark, or copyright of a third party, or misappropriates a trade secret (“IP <strong>Claim </strong>”) and will pay Customer for the resulting amounts finally awarded against Customer to such third party by a court of competent jurisdiction or agreed to in settlement. Redis will have no liability to Customer under this Section for any IP Claim that arises out of: (a) any unauthorized use, reproduction, or distribution of the Cloud Services by Customer; (b) use of the Cloud Services in combination with any other services, software, content, data, business process, or equipment not supported in the Documentation if such IP Claim would have been avoided without such combination; (c) any modification or alteration of the Cloud Services by anyone other than Redis; (d) use of any older release of the Cloud Services when a newer version would have avoided the infringement; (e) Redis’ compliance with any materials, designs, specifications or instructions provided by Customer; and/or (f) any infringement of Evaluation Services, Previews, or third-party open source software included within the Cloud Services. In the event of a IP Claim pursuant to this Section, Redis will (at Redis’ option and expense): (i) obtain for Customer the right to continue using the Cloud Services; (ii) modify the Cloud Services to make them non-infringing; or (iii) if subsections (i) and (ii) are not commercially viable (as determined by Redis in its sole discretion), terminate this Agreement, in which case Customer will be entitled to a pro-rated refund of any fees pre-paid by Customer for the remainder of the applicable Subscription Term.</p> <p><strong>9.2 Indemnification by Customer</strong>. Customer will defend Redis against: (a) any third-party claim that any Customer Data, or Customer’s use of the Cloud Services in breach of this Agreement, infringes a registered patent, registered Mark, or copyright, or misappropriates a trade secret (to the extent that such infringement or misappropriation is not the result of Redis’ actions); or (b) any claim relating to Customer’s use of the Cloud Services in violation of <a href="#Section-2">Section 2.1</a> (Access and License) or <a href="#Section-2">Section 2.2</a> (Acceptable Use) of this Agreement. Customer will, with respect to any claim against Redis that is subject to this Section, indemnify Redis for the resulting costs and damages finally awarded by a court of competent jurisdiction or agreed to in settlement.</p> <p><strong>9.3 Indemnification Process</strong>. As a condition of receiving an indemnification under this Agreement, the Party seeking indemnification (the “<strong>Indemnified Party</strong>”) will provide the other Party (the “<strong>Indemnifying Party</strong>”) with: (a) prompt written notice of the claim, provided, however, that the failure to give such notice does not relieve the Indemnifying Party’s obligations except if the Indemnifying Party is prejudiced by such failure; (b) complete control over the defense and settlement of the claim (provided, that the Indemnifying Party will not settle any claim without the Indemnified Party’s prior written consent if the settlement fails to unconditionally release the Indemnified Party from all liability pertaining to such claim, such consent will not be unreasonably withheld, delayed or conditioned); and (c) assistance requested by the Indemnifying Party in connection with the defense and settlement of the claim, at the Indemnifying Party’s expense. The indemnification obligations under this Section state the Indemnifying Party’s entire liability and the Indemnified Party’s exclusive remedy for third-party claims and actions.</p> <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div> <h2 class="wp-block-heading">10. Term and Termination.</h2> <p><strong>10.1 Agreement Term.</strong> This Agreement commences on the Effective Date of the Transaction, and continues for the duration of the Subscription Term, Preview term, or Evaluation Services term unless either Party terminates this Agreement in accordance with this Section. If all Transactions under this Agreement have expired or been terminated, either Party may terminate this Agreement for convenience by providing 30 days’ written notice. Either Party may terminate this Agreement and any applicable Transaction or SOW if the other Party materially breaches this Agreement and does not cure such breach within 30 days of written notice. Termination of a SOW will have no effect on the Agreement, which must be terminated in accordance with its terms. Upon termination of this Agreement, all rights under <a href="#Section-2">Section 2.1</a> (Access and License) and if applicable, <a href="#Appendix-1">Appendix 1</a> (Private Cloud Deployment), terminate. Any provisions intended by their nature to survive termination of this Agreement will survive.</p> <p><strong>10.2 Transaction Term</strong>. The Transaction specifies the start and end date of the Commercial Subscription. At the end of the initial term, the Commercial Subscription will renew for additional periods as specified in the applicable Transaction.</p> <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div> <h2 class="wp-block-heading">11. General.</h2> <p><strong>11.1 Ambiguities</strong>. Each Party has participated in the review of this Agreement. Any rule of construction to the effect that ambiguities are to be resolved against the drafting Party do not apply in interpreting this Agreement. The language in this Agreement will be interpreted as to its fair meaning and not strictly for or against any Party.</p> <p><strong>11.2 Assignment</strong>. Customer will not, directly, indirectly, by operation of law or otherwise, assign all or any part of this Agreement or its rights hereunder or delegate performance of any of its duties hereunder without the prior written consent of Redis and such attempt to do so will be null and void. Notwithstanding the foregoing and any non-transferable rights herein, either Party may assign this Agreement to an Affiliate or in connection with a successor in interest in a merger, reorganization, or a sale of all or substantially all the assets of the Party so long as the assigning Party requires the acquirer or successor to agree in writing to be bound by this Agreement as of the effective date of the transfer. Subject to the foregoing restrictions, this Agreement will be fully binding upon, inure to the benefit of and be enforceable by the Parties and their respective successors and assigns.</p> <p><strong>11.3 Collaboration</strong>. Each Party acknowledges that the Marks of the other Party are the property of Redis or Customer, as applicable. Subject to Customer’s ability to revoke consent for use at any time, Redis may reference Customer, or Customer’s Marks (subject to Customer’s applicable brand guidelines), and Customer’s use of the Cloud Services in customer and prospect communications and on Redis’ website. Redis agrees to stop distributing, publicly referencing, and displaying the materials at any time upon written request from Customer.</p> <p><strong>11.4 Compliance with Laws</strong>. The Parties will comply with all laws, statutes, and regulations applicable to them respectively under this Agreement. Each Party agrees that it has not received or been offered any illegal or improper bribe, kickback, payment, gift, or thing of value from any of the other Parties’ Representatives in connection with this Agreement. If a Party becomes aware of any violation of this Section, it will notify the other through the designated channel<strong>.</strong></p> <p><strong>11.5 Contractual Relationship</strong>. The Parties are entering into this Agreement as independent contracting Parties. Neither Party will have, or hold itself out as having, any right or authority to incur any obligation on behalf of the other Party. This Agreement will not be construed to create an association, joint venture, principal-to-agent relationship, or partnership between the Parties or to impose any partnership liability upon any Party.</p> <p><strong>11.6 Force Majeure</strong>. A Party will not be liable for failures or delays in performance due to causes beyond its reasonable control, including, an act of God, fire, earthquake, flood, storm, natural disaster, computer-related attacks, hacking, internet service provider failures, or delays, accident, pandemic, labor unrest, civil disobedience, act of terrorism or act of government (each, a “<strong>Force Majeure Event</strong>”). The Parties agree to use their best efforts to minimize the effects of any Force Majeure Event. The inability to meet financial obligations or compliance with existing applicable law will not be considered Force Majeure Events.</p> <p><strong>11.7 Government Users</strong>. If Customer is a U.S. government entity or if this Agreement otherwise becomes subject to the Federal Acquisition Regulations (“<strong>FAR</strong>”), Customer acknowledges that: (a) elements provided herein constitute software, services, and Documentation and are provided as “Commercial Products” and “Commercial Services” as defined at 48 C.F.R. 2.101; and (b) are being licensed as commercial computer software and services, subject to the restricted rights of 48 C.F.R. 2.101 and 12.212.</p> <p><strong>11.8 Integration; Order of Precedence</strong>. This Agreement, any Transaction, Appendix, and SOWs constitute the entire agreement between the Parties and supersede all prior agreements, or communications regarding the subject matter hereof. This Agreement may not be supplemented, amended, or modified except by a writing signed by both Parties. The terms of this Agreement control over any conflicting or additional terms and conditions of any purchase order, acknowledgement, confirmation, or other document or statement issued by Customer. Notwithstanding the foregoing, in the event of a conflict between this Agreement and any Transaction, the terms of such Transaction prevail solely for purposes of such Transaction.</p> <p><strong>11.9 Nonwaiver</strong>. The failure of either Party to insist upon or enforce strict performance of any of the provisions of this Agreement or to exercise any rights or remedies under this Agreement will not be construed as a waiver or relinquishment to any extent of such Party’s right to assert or rely upon any such provision, right or remedy in that or any other instance; rather, the same will remain in full force and effect.</p> <p id="Section-11.11"><strong>11.10 Notices</strong>. Redis may provide any notice to Customer by sending an email to Customer’s email contact, as provided by Customer, or as designated in this Section. Customer may provide notice to Redis by sending an email to <a href="/cdn-cgi/l/email-protection#670b0200060b271502030e144904080a"><span class="__cf_email__" data-cfemail="fb979e9c9a97bb899e9f9288d5989496">[email protected]</span></a>. Notices will be: (a) in writing; (b) in English; and (c) treated as received when the email is sent, whether the other Party has received the email or not. Customer is responsible for keeping its designated email contact current throughout the Subscription Term. Customer agrees to send a courtesy copy of any notice sent to: Redis Inc., Attention: General Counsel, 303 2<sup>nd</sup> St., North Tower, Suite 525, San Francisco, California 94107, U.S.A. Billing notices by Redis will be addressed to the billing contact designated by Customer.</p> <p><strong>11.11 Redis Entity; Governing Law. </strong>The laws governing this Agreement, regardless of conflict of laws principles, and the Redis entity entering into this Agreement with Customer (as applicable, “<strong>Redis</strong>”), are determined by Customer’s domicile. The following does not limit or restrict either Party from seeking injunctive or other equitable relief from a court of competent jurisdiction.</p> <ol class="wp-block-list" style="list-style-type:lower-alpha"> <li>If Customer is domiciled in Asia, Pacific, Americas, or other jurisdictions not listed in (b) or (c) below: (i) the Redis entity that is party to this Agreement is Redis Inc., a Delaware corporation with principal offices located at 303 2<sup>nd</sup> St., North Tower, Suite 525, San Francisco, California 94107 U.S.A.; and (ii) this Agreement will be construed and enforced in all respects in accordance with the laws of the State of California, U.S.A., without reference to its choice of law rules. The courts located in the County of Santa Clara, California have exclusive jurisdiction for all purposes regarding this Agreement.</li> <li>If Customer is domiciled in Israel: (i) the Redis entity that is party to this Agreement is Redis Ltd., a limited company with registered office at Alon 2 Tower 32nd Floor, 94 Yigal Alon St., Tel-Aviv 6789140, Israel; and (ii) this Agreement will be construed and enforced in all respects in accordance with the laws of the State of Israel without reference to its choice of law rules. The courts located in the Central District of the State of Israel have exclusive jurisdiction for all purposes regarding this Agreement.</li> <li>If Customer is domiciled in Europe, United Kingdom, Middle East, or Africa: (i) the Redis entity that is party to this Agreement is Redis EMEA Ltd., a limited company with registered office at Bridge House, 4 Borough High Street, London, SE1 9QQ, United Kingdom; and (ii) this Agreement will be construed and enforced in all respects in accordance with the laws of England and Wales without reference to their choice of law rules. The competent courts located in London, England have exclusive jurisdiction for all purposes regarding this Agreement.</li> </ol> <p><strong>11.12 Third-party Beneficiaries</strong>. Nothing in this Agreement confers, or is intended to confer, to any third party any benefit or the right to enforce any term of this Agreement. Notwithstanding the foregoing, Customer agrees that Redis may enforce its rights for violations of the license terms or other use terms of this Agreement, even if such violations are related to, or arising out of an agreement between Customer and a Partner.</p> <p><strong>11.13 Updates to These Terms. </strong>Redis reserves the right to amend the terms of this Agreement at any time by posting a revised version on Redis’s website for the applicable Cloud Services or by notifying Customer via email. Any amended terms become effective upon posting on the Redis website for the applicable Cloud Services or as stated in an email notice message. By continuing to use the Cloud Services after the effective date of any amendment to the terms of this Agreement, Customer agrees to be bound by the amended terms. Please check our website for the applicable terms regularly. These terms were last amended on the date indicated above.</p> <div style="height:100px" aria-hidden="true" id="Appendix-1" class="wp-block-spacer"></div> <h2 class="wp-block-heading has-text-align-center margin-bottom-0">APPENDIX 1</h2> <h3 class="wp-block-heading has-text-align-center margin-bottom-0 margin-top-0">Private Cloud Deployment</h3> <p class="has-text-align-center margin-top-0"><em>(Only applicable if Customer informs Redis of such deployment)</em></p> <p>The following provisions apply when the Cloud Services run on virtual machines (“<strong>Instances</strong>”) and persistent storage devices (“<strong>Persistent Storage</strong>”) (Instances and Persistent Storage are jointly referred to as “<strong>Resources</strong>”), under Customer’s private cloud account (the “<strong>Customer’s Environment</strong>”).</p> <h2 class="wp-block-heading">1. License.</h2> <p>Subject to the terms and conditions of this Agreement and the applicable Transaction, Redis shall make the Cloud Services available to Customer from within Customer’s Environment during the applicable Subscription Term. All other terms concerning the Services shall apply.</p> <h2 class="wp-block-heading">2. Additional Services.</h2> <p>In addition to the Cloud Services described under the Agreement, Redis may: (a) from time to time, launch Resources in the Customer’s Environment and provision them with the Software; (b) from time to time, shutdown provisioned Resources; (c) operate the Software on the Resources on an ongoing basis to support Customer’s Database needs: and/or (d) monitor performance and health of the Resources and Software (collectively, “<strong>Additional Services</strong>”).</p> <h2 class="wp-block-heading">3. Customer Obligations.</h2> <p>Customer shall: (a) set its account with the applicable cloud provider, so that Redis can self-provision Resources in the Customer’s Environment; (b) configure its account with the applicable cloud provider, such that Redis shall receive immediate response to any reasonable provisioning request in the Customer’s Environment; (c) grant Redis at least 1 predefined access permission (“<strong>Permission</strong>”) to the Customer’s Environment, to enable Redis to provide the Cloud Services and Additional Services; the Permission level will be equal to the highest level of user permissions available in Customer’s Environment; (d) not terminate or cease the Permission, or otherwise prevent Redis access in any other way to any of the Resources provisioned by Redis in the Customer’s Environment; and (e) not maintain any SSH access to the Resources provisioned by Redis in the Customer’s Environment.</p> <h2 class="wp-block-heading">4. Termination.</h2> <p>If Customer: (a) terminates some or all the Resources on the Customer’s Environment applicable to the Cloud Services and Additional Services; or (b) performs any Identity and Access Management (IAM) changes which affect Redis’ Permission, Redis may, in its sole discretion, notify Customer that Redis will suspend or terminate a Transaction within 3 days of (i) and/or (ii) (“<strong>Notice Period</strong>”). If Customer does not initiate a Support Ticket, and/or is unresponsive to Redis requests during the Notice Period, then Redis will complete the suspension or termination of the Transaction.</p> <h2 class="wp-block-heading">5. Miscellaneous.</h2> <p>Customer acknowledges and agrees that Redis will launch in the Customer’s Environment as many Resources as Redis sees fit, to provide the Cloud Services and Additional Services. Redis is not responsible for any damage, loss of data or information, or any other loss that may occur as a result or in relation to Customer terminating Resources provisioned by Redis in the Customer’s Environment. Redis is not liable or responsible for any Cloud Services failure resulting from: (a) Customer’s failure to fulfill its obligations under this Appendix; (b) Customer’s Environment technical failures; and/or (c) terms or policy changes effected by the applicable cloud provider to Customer’s Environment.</p> <div style="height:44px" aria-hidden="true" class="wp-block-spacer"></div> </div> </div> <div id="consent_blackbar"></div> <div class="footer-main"> <div class="footer-main-wrap"> <div class="footer-row"> <footer> <div class="wrapper"> <div class="footer-columns"> <div class="col-one"> <div class="logo-social-links"> <div class="footer-logo"> <a href="/"> <img alt="redis logo" loading="lazy" class="footer-logo-img" src="https://redis.io/wp-content/uploads/2024/04/footlogo.svg"> </a> </div> <div class="col-three"> <div class=" sociallinks"> <a href="https://www.facebook.com/Redisinc" target="_blank" rel="noopener"> <img src="/wp-content/themes/redislabs-glide/assets/dist/images/facebook.svg" width="11" height="20" alt="facebook-icon"> </a> <a href="https://www.youtube.com/c/redisinc" target="_blank" rel="noopener"> <img src="/wp-content/themes/redislabs-glide/assets/dist/images/Vector.svg" width="20" height="16" alt="Vector-icon"> </a> <a href="https://www.linkedin.com/company/redisinc/" target="_blank" rel="noopener"> <img src="/wp-content/themes/redislabs-glide/assets/dist/images/LinkedIn.svg" width="20" height="21" alt="LinkedIn-icon"> </a> <a href="https://www.instagram.com/redisinc/" target="_blank" rel="noopener"> <img src="/wp-content/themes/redislabs-glide/assets/dist/images/Instagram.svg" width="19" height="20" alt="Instagram-icon"> </a> <a href="https://twitter.com/Redisinc" target="_blank" rel="noopener"> <img src="/wp-content/themes/redislabs-glide/assets/dist/images/X.svg" width="19" height="20" alt="X-icon"> </a> </div> </div> </div> <div class="link-right"> <ul class="footer-copyright hidem"> <li id="menu-item-153805" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-153805"> <a href="https://trust.redis.io">Trust</a> </li> <li id="menu-item-153807" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-153807"> <a href="/legal/privacy-policy/">Privacy</a> </li> <li id="menu-item-153806" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-153806"> <a href="/legal/redis-website-terms-of-use/">Terms of use</a> </li> <li id="menu-item-164057" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164057"> <a href="/legal/">Legal notices</a> </li> </ul> <div class="language-selector languageop hidem"> <label for="language-selector" class="hide">Select Language:</label> <select id="language-selector" class="language-select"> <option disabled="" selected="">Language</option> <option value="">English</option> <option value="es">Español</option> <option value="fr">Français</option> <option value="de">Deutsch</option> <option value="ko">한국어</option> <option value="pt">Português</option> </select> </div> </div> </div> <div class="col-two sitelinks"> <div class="cl-left"> <div class="usecase-menu"> <div class="link-title">USE CASES</div> <ul> <li id="menu-item-164049" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164049"> <a href="https://redis.io/solutions/vector-database/">Vector database</a> </li> <li id="menu-item-165225" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-165225"> <a href="https://redis.io/solutions/feature-stores/">Feature stores</a> </li> <li id="menu-item-164047" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164047"> <a href="/redis-for-ai/">Semantic cache</a> </li> <li id="menu-item-164048" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164048"> <a href="https://redis.io/solutions/caching/">Caching</a> </li> <li id="menu-item-164051" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164051"> <a href="/nosql/what-is-nosql/">NoSQL database</a> </li> <li id="menu-item-164052" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164052"> <a href="https://redis.io/solutions/leaderboards/">Leaderboards</a> </li> <li id="menu-item-164053" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164053"> <a href="https://redis.io/solutions/deduplication/">Data deduplication</a> </li> <li id="menu-item-164054" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164054"> <a href="https://redis.io/solutions/messaging/">Messaging</a> </li> <li id="menu-item-164056" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164056"> <a href="https://redis.io/solutions/authentication-token-storage/">Authentication token storage</a> </li> <li id="menu-item-164050" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164050"> <a href="https://redis.io/solutions/fast-data-ingest/">Fast data ingest</a> </li> <li id="menu-item-164055" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164055"> <a href="/solutions/query-caching-with-redis-enterprise/">Query caching</a> </li> <li id="menu-item-164044" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164044"> <a href="https://redis.io/solutions/">All solutions</a> </li> </ul> </div> </div> <div class="cl-right"> <div class="menu-col-item"> <div class="link-title">INDUSTRIES</div> <ul> <li id="menu-item-164028" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164028"> <a href="https://redis.io/industries/financial-services/">Financial Services</a> </li> <li id="menu-item-164029" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164029"> <a href="https://redis.io/industries/gaming/">Gaming</a> </li> <li id="menu-item-164030" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164030"> <a href="https://redis.io/industries/healthcare/">Healthcare</a> </li> <li id="menu-item-164033" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164033"> <a href="/industries/retail/">Retail</a> </li> <li id="menu-item-164032" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164032"> <a href="/industries/">All industries</a> </li> </ul> </div> <div class="menu-col-item"> <div class="link-title">COMPARE</div> <ul> <li id="menu-item-164035" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164035"> <a href="https://redis.io/compare/elasticache/">Redis vs. ElastiCache</a> </li> <li id="menu-item-164036" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164036"> <a href="https://redis.io/compare/memcached/">Redis vs. Memcached</a> </li> <li id="menu-item-164034" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164034"> <a href="https://redis.io/compare/memorystore/">Redis vs. Memorystore</a> </li> <li id="menu-item-164037" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164037"> <a href="/compare/community-edition/">Redis vs. Source Available</a> </li> </ul> </div> <div class="menu-col-item"> <div class="link-title">COMPANY</div> <ul> <li id="menu-item-164014" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164014"> <a href="/company/">Mission & values</a> </li> <li id="menu-item-164015" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164015"> <a href="https://redis.io/company/team/">Leadership</a> </li> <li id="menu-item-164016" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164016"> <a href="https://redis.io/careers/">Careers</a> </li> <li id="menu-item-164017" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164017"> <a href="https://redis.io/company/news/">News</a> </li> </ul> </div> <div class="menu-col-item"> <div class="link-title">CONNECT</div> <ul> <li id="menu-item-164038" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164038"> <a href="/community/">Community</a> </li> <li id="menu-item-164039" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164039"> <a href="https://redis.io/events/">Events & Webinars</a> </li> </ul> </div> <div class="menu-col-item"> <div class="link-title">PARTNERS</div> <ul> <li id="menu-item-164023" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164023"> <a href="/cloud-partners/aws/">Amazon Web Services</a> </li> <li id="menu-item-164024" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164024"> <a href="/cloud-partners/google/">Google Cloud</a> </li> <li id="menu-item-164059" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164059"> <a href="/cloud-partners/azure/">Azure</a> </li> <li id="menu-item-164027" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164027"> <a href="/partners/">All partners</a> </li> </ul> </div> <div class="menu-col-item"> <div class="link-title">SUPPORT</div> <ul> <li id="menu-item-164042" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164042"> <a href="https://redis.io/services/professional-services/">Professional Services</a> </li> <li id="menu-item-164043" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164043"> <a href="https://redis.io/support/">Support</a> </li> </ul> </div> </div> </div> <div class="footer-bottom"> <ul class="footer-copyright"> <li id="menu-item-153805" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-153805"> <a href="https://trust.redis.io">Trust</a> </li> <li id="menu-item-153807" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-153807"> <a href="/legal/privacy-policy/">Privacy</a> </li> <li id="menu-item-153806" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-153806"> <a href="/legal/redis-website-terms-of-use/">Terms of use</a> </li> <li id="menu-item-164057" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-164057"> <a href="/legal/">Legal notices</a> </li> </ul> <div class="language-selector languageop"> <label for="language-selector" class="hide">Select Language:</label> <select id="language-selector" class="language-select"> <option disabled="" selected="">Language</option> <option value="">English</option> <option value="es">Español</option> <option value="fr">Français</option> <option value="de">Deutsch</option> <option value="ko">한국어</option> <option value="pt">Português</option> </select> </div> </div> </div> </footer> </div> </div> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script> var SITE_ROOT = 'https://redis.io'; </script> <script> var SITE_ASSETS = 'https://redis.io/wp-content/themes/wpx/assets'; </script> <script> var SITE_THEME = 'https://redis.io/wp-content/themes/wpx'; </script> <!-- Link to stylesheet --> <link rel="stylesheet" href="https://redis.io/wp-content/themes/wpx/assets/dist/css/globals/refresh/layout/single.css?ver=1743987922" media="print" onload="this.media='all'; this.onload=null;"> <!-- Fallback --> <noscript> <link rel="stylesheet" href="https://redis.io/wp-content/themes/wpx/assets/dist/css/globals/refresh/layout/single.css?ver=1743987922" media="all"> </noscript> <!-- Link to stylesheet --> <link rel="stylesheet" href="https://redis.io/wp-content/themes/wpx/assets/dist/css/globals/refresh/components/blocks/paragraph.css?ver=1743987922" media="print" onload="this.media='all'; this.onload=null;"> <!-- Fallback --> <noscript> <link rel="stylesheet" href="https://redis.io/wp-content/themes/wpx/assets/dist/css/globals/refresh/components/blocks/paragraph.css?ver=1743987922" media="all"> </noscript> <!-- Link to stylesheet --> <link rel="stylesheet" href="https://redis.io/wp-content/themes/wpx/assets/dist/css/globals/refresh/components/blocks/table.css?ver=1743987922" media="print" onload="this.media='all'; this.onload=null;"> <!-- Fallback --> <noscript> <link rel="stylesheet" href="https://redis.io/wp-content/themes/wpx/assets/dist/css/globals/refresh/components/blocks/table.css?ver=1743987922" media="all"> </noscript> <!-- Link to stylesheet --> <link rel="stylesheet" href="/wp-content/themes/wpx/assets/dist/css/globals/refresh/components/blocks/buttons.css?ver=1743987922" media="print" onload="this.media='all'; this.onload=null;"> <!-- Fallback --> <noscript> <link rel="stylesheet" href="/wp-content/themes/wpx/assets/dist/css/globals/refresh/components/blocks/buttons.css?ver=1743987922" media="all"> </noscript> <!-- Link to stylesheet --> <link rel="stylesheet" href="/wp-content/themes/wpx/assets/dist/css/globals/refresh/footer/footer.css?ver=1743987922" media="print" onload="this.media='all'; this.onload=null;"> <!-- Fallback --> <noscript> <link rel="stylesheet" href="/wp-content/themes/wpx/assets/dist/css/globals/refresh/footer/footer.css?ver=1743987922" media="all"> </noscript> <!-- Link to stylesheet --> <link rel="stylesheet" href="/wp-content/themes/redislabs-glide/assets/dist/css/footer.min.css?ver=1743987922" media="print" onload="this.media='all'; this.onload=null;"> <!-- Fallback --> <noscript> <link rel="stylesheet" href="/wp-content/themes/redislabs-glide/assets/dist/css/footer.min.css?ver=1743987922" media="all"> </noscript> <script type="text/javascript" id="wpx-js-js-extra"> /* <![CDATA[ */ var redisJS = {"ajaxUrl":"https:\/\/redis.io\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" defer='defer' src="https://redis.io/wp-content/themes/wpx/assets/dist/js/app.min.js" id="wpx-js-js"></script> <script type="text/javascript" defer='defer' src="https://redis.io/wp-content/themes/redislabs-glide/assets/dist/js/bundle.min.js?ver=1743987922" id="child-theme-scripts-js"></script> <script type="text/javascript" src="https://redis.io/wp-content/themes/wpx/assets/dist/js/front-ui.min.js?ver=1744019030" id="redis-front-ui-js"></script> <script type="text/javascript" id="redis-front-ui-js-after"> /* <![CDATA[ */ const redisAjaxURL = "https://redis.io/wp-admin/admin-ajax.php"; const redisNonce = "39cf19530b"; const redisPostid = "94349"; /* ]]> */ </script> <script type="text/javascript" src="https://redis.io/wp-content/themes/wpx/assets/dist/js/vendor/query-script.js?ver=1743987923" id="query-script-js"></script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-1fedf62d6f1beddfa04","applicationID":"650495667","transactionName":"MlFUN0IDCBEEVRZZWgsbdwBECwkMSkYDV1A=","queueTime":0,"applicationTime":234,"atts":"HhZXQQoZGx8=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>