[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-redis-cloud-database-provisioning":3,"mdc--jvi8wb-key":37,"related-repo-redis-cloud-database-provisioning":914,"related-org-redis-cloud-database-provisioning":1009},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":32,"sourceUrl":35,"mdContent":36},"cloud-database-provisioning","provision Redis Cloud databases","Provision a Redis Cloud database end-to-end — Essentials (fixed plan) or Pro (custom) — using Redis Cloud MCP tools",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"redis","Redis","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fredis.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Database","database","tag",{"name":17,"slug":18,"type":15},"MCP","mcp",{"name":20,"slug":21,"type":15},"Cloud","cloud",{"name":9,"slug":8,"type":15},15,"https:\u002F\u002Fgithub.com\u002Fredis\u002Fredisctl","2026-06-03T07:53:00.906753",null,0,[29,8,30,31],"cli","redis-cloud","redis-enterprise",{"repoUrl":24,"stars":23,"forks":27,"topics":33,"description":34},[29,8,30,31],"Unified CLI for Redis Cloud and Enterprise management","https:\u002F\u002Fgithub.com\u002Fredis\u002Fredisctl\u002Ftree\u002FHEAD\u002Fcrates\u002Fredisctl-mcp\u002Fskills\u002Fcloud-database-provisioning","---\nname: cloud-database-provisioning\ndescription: Provision a Redis Cloud database end-to-end — Essentials (fixed plan) or Pro (custom) — using Redis Cloud MCP tools\n---\n\nYou are a Redis Cloud provisioning assistant. Guide the user through creating a Redis Cloud subscription and database from scratch, handling the full async task lifecycle.\n\n## Workflow\n\n### Step 1: Verify authentication\n\nCall `get_account` to confirm credentials are configured and the account is accessible. Note the account ID and name for later steps.\n\nIf `get_account` fails, tell the user to configure their Redis Cloud API key:\n\n```\nredisctl cloud auth --key \u003CAPI-KEY> --secret \u003CSECRET>\n```\n\n### Step 2: Choose subscription type\n\nAsk the user (or infer from context):\n\n- **Essentials** (fixed plans): managed infrastructure, quickest to provision. Best for development, testing, or small production workloads.\n- **Pro** (custom): dedicated infrastructure, supports advanced modules, Multi-AZ, Active-Active replication. Best for production workloads with specific performance or HA requirements.\n\nIf unsure, default to Essentials and note that migration to Pro is possible later.\n\n### Step 3a: Provision Essentials (fixed plan)\n\n**3a-1. List available plans**\n\nCall `list_fixed_plans` to see available plan tiers. Present the options as a table:\n\n| Plan ID | Name | Memory | Max Throughput | Provider | Region | Price\u002FMonth |\n|---------|------|--------|----------------|----------|--------|-------------|\n\n**3a-2. Create the subscription**\n\nCall `create_fixed_subscription` with:\n- `name`: descriptive name (e.g. `my-app-dev`)\n- `plan_id`: from the chosen plan\n- `redis_version` (optional): call `get_fixed_redis_versions` to see supported versions\n\n**3a-3. Verify subscription is active**\n\nCall `get_fixed_subscription` with the returned subscription ID. Check that `status == \"active\"`. If not yet active, wait a few seconds and retry (the subscription should activate quickly for Essentials).\n\n**3a-4. Create the database**\n\nCall `create_fixed_database` with:\n- `subscription_id`: from step 3a-2\n- `name`: database name (e.g. `my-app-db`)\n- `password` (optional): set a password, or omit for the default\n\n**3a-5. Retrieve connection info**\n\nCall `get_fixed_database` to get the database endpoint and port. Report to the user:\n\n```\nHost: \u003Cendpoint>\nPort: \u003Cport>\nPassword: \u003Cconfigured or default>\n```\n\n### Step 3b: Provision Pro (custom)\n\n**3b-1. Gather requirements**\n\nAsk the user:\n- Cloud provider and region — call `get_regions` to list options\n- Memory size (GB) and throughput (ops\u002Fsec, optional)\n- Required modules — call `get_modules` to list available modules\n- High availability requirements (replication, Multi-AZ)\n\n**3b-2. Create the subscription**\n\nCall `create_subscription` with the gathered parameters. This starts an asynchronous provisioning task (typically takes 5-15 minutes).\n\n**3b-3. Wait for the task to complete**\n\nCall `wait_for_cloud_task` with the task ID returned from `create_subscription`. This polls until the task reaches a terminal state (default timeout: 300s).\n\nIf the task timeout is reached before completion, call `get_task` directly with the task ID to continue checking status.\n\nIf the task fails, report the error details from the task response.\n\n**3b-4. Verify database is active**\n\nAfter the subscription is created, it includes a default database. Call `get_database` with the subscription ID and database ID (typically 1 for the first database). Check that `status == \"active\"`.\n\n**3b-5. Retrieve connection info**\n\nReport the public endpoint, port, and any configured password to the user.\n\n### Step 4: Smoke test (optional)\n\nIf the user wants to verify connectivity, suggest:\n\n```bash\nredis-cli -h \u003Cendpoint> -p \u003Cport> -a \u003Cpassword> PING\n```\n\nOr use the `redis_ping` MCP tool if a database profile is configured for this new database.\n\n## Decision table\n\n| Scenario | Recommendation |\n|----------|---------------|\n| Development \u002F testing | Essentials (free tier if available) |\n| Small production (\u003C 1 GB, \u003C 1000 ops\u002Fs) | Essentials paid |\n| Production with modules (Search, JSON, etc.) | Pro |\n| Multi-AZ or high availability required | Pro |\n| Active-Active (multi-region) | Pro |\n| Uncertain | Start with Essentials; migrate to Pro when needed |\n\n## Common issues\n\n- **Pro task timeout**: Pro subscriptions typically take 5-15 minutes to provision. If `wait_for_cloud_task` times out, use `get_task` with the task ID to continue polling.\n- **Plan not available in region**: call `list_fixed_plans` and check the `region` field to find plans in the target region.\n- **Subscription limit reached**: check `get_account` for subscription limits; delete an unused subscription first if needed.\n- **Database not active after creation**: for Pro databases, the database transitions through `pending` to `active`; poll `get_database` every 10-15 seconds until active.\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,50,57,64,78,90,102,108,113,139,144,150,158,170,218,226,238,290,298,318,326,337,379,387,399,408,414,422,427,466,474,486,494,513,526,531,539,559,567,572,578,583,682,695,701,800,806,908],{"type":43,"tag":44,"props":45,"children":46},"element","p",{},[47],{"type":48,"value":49},"text","You are a Redis Cloud provisioning assistant. Guide the user through creating a Redis Cloud subscription and database from scratch, handling the full async task lifecycle.",{"type":43,"tag":51,"props":52,"children":54},"h2",{"id":53},"workflow",[55],{"type":48,"value":56},"Workflow",{"type":43,"tag":58,"props":59,"children":61},"h3",{"id":60},"step-1-verify-authentication",[62],{"type":48,"value":63},"Step 1: Verify authentication",{"type":43,"tag":44,"props":65,"children":66},{},[67,69,76],{"type":48,"value":68},"Call ",{"type":43,"tag":70,"props":71,"children":73},"code",{"className":72},[],[74],{"type":48,"value":75},"get_account",{"type":48,"value":77}," to confirm credentials are configured and the account is accessible. Note the account ID and name for later steps.",{"type":43,"tag":44,"props":79,"children":80},{},[81,83,88],{"type":48,"value":82},"If ",{"type":43,"tag":70,"props":84,"children":86},{"className":85},[],[87],{"type":48,"value":75},{"type":48,"value":89}," fails, tell the user to configure their Redis Cloud API key:",{"type":43,"tag":91,"props":92,"children":96},"pre",{"className":93,"code":95,"language":48},[94],"language-text","redisctl cloud auth --key \u003CAPI-KEY> --secret \u003CSECRET>\n",[97],{"type":43,"tag":70,"props":98,"children":100},{"__ignoreMap":99},"",[101],{"type":48,"value":95},{"type":43,"tag":58,"props":103,"children":105},{"id":104},"step-2-choose-subscription-type",[106],{"type":48,"value":107},"Step 2: Choose subscription type",{"type":43,"tag":44,"props":109,"children":110},{},[111],{"type":48,"value":112},"Ask the user (or infer from context):",{"type":43,"tag":114,"props":115,"children":116},"ul",{},[117,129],{"type":43,"tag":118,"props":119,"children":120},"li",{},[121,127],{"type":43,"tag":122,"props":123,"children":124},"strong",{},[125],{"type":48,"value":126},"Essentials",{"type":48,"value":128}," (fixed plans): managed infrastructure, quickest to provision. Best for development, testing, or small production workloads.",{"type":43,"tag":118,"props":130,"children":131},{},[132,137],{"type":43,"tag":122,"props":133,"children":134},{},[135],{"type":48,"value":136},"Pro",{"type":48,"value":138}," (custom): dedicated infrastructure, supports advanced modules, Multi-AZ, Active-Active replication. Best for production workloads with specific performance or HA requirements.",{"type":43,"tag":44,"props":140,"children":141},{},[142],{"type":48,"value":143},"If unsure, default to Essentials and note that migration to Pro is possible later.",{"type":43,"tag":58,"props":145,"children":147},{"id":146},"step-3a-provision-essentials-fixed-plan",[148],{"type":48,"value":149},"Step 3a: Provision Essentials (fixed plan)",{"type":43,"tag":44,"props":151,"children":152},{},[153],{"type":43,"tag":122,"props":154,"children":155},{},[156],{"type":48,"value":157},"3a-1. List available plans",{"type":43,"tag":44,"props":159,"children":160},{},[161,162,168],{"type":48,"value":68},{"type":43,"tag":70,"props":163,"children":165},{"className":164},[],[166],{"type":48,"value":167},"list_fixed_plans",{"type":48,"value":169}," to see available plan tiers. Present the options as a table:",{"type":43,"tag":171,"props":172,"children":173},"table",{},[174],{"type":43,"tag":175,"props":176,"children":177},"thead",{},[178],{"type":43,"tag":179,"props":180,"children":181},"tr",{},[182,188,193,198,203,208,213],{"type":43,"tag":183,"props":184,"children":185},"th",{},[186],{"type":48,"value":187},"Plan ID",{"type":43,"tag":183,"props":189,"children":190},{},[191],{"type":48,"value":192},"Name",{"type":43,"tag":183,"props":194,"children":195},{},[196],{"type":48,"value":197},"Memory",{"type":43,"tag":183,"props":199,"children":200},{},[201],{"type":48,"value":202},"Max Throughput",{"type":43,"tag":183,"props":204,"children":205},{},[206],{"type":48,"value":207},"Provider",{"type":43,"tag":183,"props":209,"children":210},{},[211],{"type":48,"value":212},"Region",{"type":43,"tag":183,"props":214,"children":215},{},[216],{"type":48,"value":217},"Price\u002FMonth",{"type":43,"tag":44,"props":219,"children":220},{},[221],{"type":43,"tag":122,"props":222,"children":223},{},[224],{"type":48,"value":225},"3a-2. Create the subscription",{"type":43,"tag":44,"props":227,"children":228},{},[229,230,236],{"type":48,"value":68},{"type":43,"tag":70,"props":231,"children":233},{"className":232},[],[234],{"type":48,"value":235},"create_fixed_subscription",{"type":48,"value":237}," with:",{"type":43,"tag":114,"props":239,"children":240},{},[241,260,271],{"type":43,"tag":118,"props":242,"children":243},{},[244,250,252,258],{"type":43,"tag":70,"props":245,"children":247},{"className":246},[],[248],{"type":48,"value":249},"name",{"type":48,"value":251},": descriptive name (e.g. ",{"type":43,"tag":70,"props":253,"children":255},{"className":254},[],[256],{"type":48,"value":257},"my-app-dev",{"type":48,"value":259},")",{"type":43,"tag":118,"props":261,"children":262},{},[263,269],{"type":43,"tag":70,"props":264,"children":266},{"className":265},[],[267],{"type":48,"value":268},"plan_id",{"type":48,"value":270},": from the chosen plan",{"type":43,"tag":118,"props":272,"children":273},{},[274,280,282,288],{"type":43,"tag":70,"props":275,"children":277},{"className":276},[],[278],{"type":48,"value":279},"redis_version",{"type":48,"value":281}," (optional): call ",{"type":43,"tag":70,"props":283,"children":285},{"className":284},[],[286],{"type":48,"value":287},"get_fixed_redis_versions",{"type":48,"value":289}," to see supported versions",{"type":43,"tag":44,"props":291,"children":292},{},[293],{"type":43,"tag":122,"props":294,"children":295},{},[296],{"type":48,"value":297},"3a-3. Verify subscription is active",{"type":43,"tag":44,"props":299,"children":300},{},[301,302,308,310,316],{"type":48,"value":68},{"type":43,"tag":70,"props":303,"children":305},{"className":304},[],[306],{"type":48,"value":307},"get_fixed_subscription",{"type":48,"value":309}," with the returned subscription ID. Check that ",{"type":43,"tag":70,"props":311,"children":313},{"className":312},[],[314],{"type":48,"value":315},"status == \"active\"",{"type":48,"value":317},". If not yet active, wait a few seconds and retry (the subscription should activate quickly for Essentials).",{"type":43,"tag":44,"props":319,"children":320},{},[321],{"type":43,"tag":122,"props":322,"children":323},{},[324],{"type":48,"value":325},"3a-4. Create the database",{"type":43,"tag":44,"props":327,"children":328},{},[329,330,336],{"type":48,"value":68},{"type":43,"tag":70,"props":331,"children":333},{"className":332},[],[334],{"type":48,"value":335},"create_fixed_database",{"type":48,"value":237},{"type":43,"tag":114,"props":338,"children":339},{},[340,351,368],{"type":43,"tag":118,"props":341,"children":342},{},[343,349],{"type":43,"tag":70,"props":344,"children":346},{"className":345},[],[347],{"type":48,"value":348},"subscription_id",{"type":48,"value":350},": from step 3a-2",{"type":43,"tag":118,"props":352,"children":353},{},[354,359,361,367],{"type":43,"tag":70,"props":355,"children":357},{"className":356},[],[358],{"type":48,"value":249},{"type":48,"value":360},": database name (e.g. ",{"type":43,"tag":70,"props":362,"children":364},{"className":363},[],[365],{"type":48,"value":366},"my-app-db",{"type":48,"value":259},{"type":43,"tag":118,"props":369,"children":370},{},[371,377],{"type":43,"tag":70,"props":372,"children":374},{"className":373},[],[375],{"type":48,"value":376},"password",{"type":48,"value":378}," (optional): set a password, or omit for the default",{"type":43,"tag":44,"props":380,"children":381},{},[382],{"type":43,"tag":122,"props":383,"children":384},{},[385],{"type":48,"value":386},"3a-5. Retrieve connection info",{"type":43,"tag":44,"props":388,"children":389},{},[390,391,397],{"type":48,"value":68},{"type":43,"tag":70,"props":392,"children":394},{"className":393},[],[395],{"type":48,"value":396},"get_fixed_database",{"type":48,"value":398}," to get the database endpoint and port. Report to the user:",{"type":43,"tag":91,"props":400,"children":403},{"className":401,"code":402,"language":48},[94],"Host: \u003Cendpoint>\nPort: \u003Cport>\nPassword: \u003Cconfigured or default>\n",[404],{"type":43,"tag":70,"props":405,"children":406},{"__ignoreMap":99},[407],{"type":48,"value":402},{"type":43,"tag":58,"props":409,"children":411},{"id":410},"step-3b-provision-pro-custom",[412],{"type":48,"value":413},"Step 3b: Provision Pro (custom)",{"type":43,"tag":44,"props":415,"children":416},{},[417],{"type":43,"tag":122,"props":418,"children":419},{},[420],{"type":48,"value":421},"3b-1. Gather requirements",{"type":43,"tag":44,"props":423,"children":424},{},[425],{"type":48,"value":426},"Ask the user:",{"type":43,"tag":114,"props":428,"children":429},{},[430,443,448,461],{"type":43,"tag":118,"props":431,"children":432},{},[433,435,441],{"type":48,"value":434},"Cloud provider and region — call ",{"type":43,"tag":70,"props":436,"children":438},{"className":437},[],[439],{"type":48,"value":440},"get_regions",{"type":48,"value":442}," to list options",{"type":43,"tag":118,"props":444,"children":445},{},[446],{"type":48,"value":447},"Memory size (GB) and throughput (ops\u002Fsec, optional)",{"type":43,"tag":118,"props":449,"children":450},{},[451,453,459],{"type":48,"value":452},"Required modules — call ",{"type":43,"tag":70,"props":454,"children":456},{"className":455},[],[457],{"type":48,"value":458},"get_modules",{"type":48,"value":460}," to list available modules",{"type":43,"tag":118,"props":462,"children":463},{},[464],{"type":48,"value":465},"High availability requirements (replication, Multi-AZ)",{"type":43,"tag":44,"props":467,"children":468},{},[469],{"type":43,"tag":122,"props":470,"children":471},{},[472],{"type":48,"value":473},"3b-2. Create the subscription",{"type":43,"tag":44,"props":475,"children":476},{},[477,478,484],{"type":48,"value":68},{"type":43,"tag":70,"props":479,"children":481},{"className":480},[],[482],{"type":48,"value":483},"create_subscription",{"type":48,"value":485}," with the gathered parameters. This starts an asynchronous provisioning task (typically takes 5-15 minutes).",{"type":43,"tag":44,"props":487,"children":488},{},[489],{"type":43,"tag":122,"props":490,"children":491},{},[492],{"type":48,"value":493},"3b-3. Wait for the task to complete",{"type":43,"tag":44,"props":495,"children":496},{},[497,498,504,506,511],{"type":48,"value":68},{"type":43,"tag":70,"props":499,"children":501},{"className":500},[],[502],{"type":48,"value":503},"wait_for_cloud_task",{"type":48,"value":505}," with the task ID returned from ",{"type":43,"tag":70,"props":507,"children":509},{"className":508},[],[510],{"type":48,"value":483},{"type":48,"value":512},". This polls until the task reaches a terminal state (default timeout: 300s).",{"type":43,"tag":44,"props":514,"children":515},{},[516,518,524],{"type":48,"value":517},"If the task timeout is reached before completion, call ",{"type":43,"tag":70,"props":519,"children":521},{"className":520},[],[522],{"type":48,"value":523},"get_task",{"type":48,"value":525}," directly with the task ID to continue checking status.",{"type":43,"tag":44,"props":527,"children":528},{},[529],{"type":48,"value":530},"If the task fails, report the error details from the task response.",{"type":43,"tag":44,"props":532,"children":533},{},[534],{"type":43,"tag":122,"props":535,"children":536},{},[537],{"type":48,"value":538},"3b-4. Verify database is active",{"type":43,"tag":44,"props":540,"children":541},{},[542,544,550,552,557],{"type":48,"value":543},"After the subscription is created, it includes a default database. Call ",{"type":43,"tag":70,"props":545,"children":547},{"className":546},[],[548],{"type":48,"value":549},"get_database",{"type":48,"value":551}," with the subscription ID and database ID (typically 1 for the first database). Check that ",{"type":43,"tag":70,"props":553,"children":555},{"className":554},[],[556],{"type":48,"value":315},{"type":48,"value":558},".",{"type":43,"tag":44,"props":560,"children":561},{},[562],{"type":43,"tag":122,"props":563,"children":564},{},[565],{"type":48,"value":566},"3b-5. Retrieve connection info",{"type":43,"tag":44,"props":568,"children":569},{},[570],{"type":48,"value":571},"Report the public endpoint, port, and any configured password to the user.",{"type":43,"tag":58,"props":573,"children":575},{"id":574},"step-4-smoke-test-optional",[576],{"type":48,"value":577},"Step 4: Smoke test (optional)",{"type":43,"tag":44,"props":579,"children":580},{},[581],{"type":48,"value":582},"If the user wants to verify connectivity, suggest:",{"type":43,"tag":91,"props":584,"children":588},{"className":585,"code":586,"language":587,"meta":99,"style":99},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","redis-cli -h \u003Cendpoint> -p \u003Cport> -a \u003Cpassword> PING\n","bash",[589],{"type":43,"tag":70,"props":590,"children":591},{"__ignoreMap":99},[592],{"type":43,"tag":593,"props":594,"children":597},"span",{"class":595,"line":596},"line",1,[598,604,610,616,621,627,632,637,641,646,650,654,659,663,668,673,677],{"type":43,"tag":593,"props":599,"children":601},{"style":600},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[602],{"type":48,"value":603},"redis-cli",{"type":43,"tag":593,"props":605,"children":607},{"style":606},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[608],{"type":48,"value":609}," -h",{"type":43,"tag":593,"props":611,"children":613},{"style":612},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[614],{"type":48,"value":615}," \u003C",{"type":43,"tag":593,"props":617,"children":618},{"style":606},[619],{"type":48,"value":620},"endpoin",{"type":43,"tag":593,"props":622,"children":624},{"style":623},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[625],{"type":48,"value":626},"t",{"type":43,"tag":593,"props":628,"children":629},{"style":612},[630],{"type":48,"value":631},">",{"type":43,"tag":593,"props":633,"children":634},{"style":606},[635],{"type":48,"value":636}," -p",{"type":43,"tag":593,"props":638,"children":639},{"style":612},[640],{"type":48,"value":615},{"type":43,"tag":593,"props":642,"children":643},{"style":606},[644],{"type":48,"value":645},"por",{"type":43,"tag":593,"props":647,"children":648},{"style":623},[649],{"type":48,"value":626},{"type":43,"tag":593,"props":651,"children":652},{"style":612},[653],{"type":48,"value":631},{"type":43,"tag":593,"props":655,"children":656},{"style":606},[657],{"type":48,"value":658}," -a",{"type":43,"tag":593,"props":660,"children":661},{"style":612},[662],{"type":48,"value":615},{"type":43,"tag":593,"props":664,"children":665},{"style":606},[666],{"type":48,"value":667},"passwor",{"type":43,"tag":593,"props":669,"children":670},{"style":623},[671],{"type":48,"value":672},"d",{"type":43,"tag":593,"props":674,"children":675},{"style":612},[676],{"type":48,"value":631},{"type":43,"tag":593,"props":678,"children":679},{"style":606},[680],{"type":48,"value":681}," PING\n",{"type":43,"tag":44,"props":683,"children":684},{},[685,687,693],{"type":48,"value":686},"Or use the ",{"type":43,"tag":70,"props":688,"children":690},{"className":689},[],[691],{"type":48,"value":692},"redis_ping",{"type":48,"value":694}," MCP tool if a database profile is configured for this new database.",{"type":43,"tag":51,"props":696,"children":698},{"id":697},"decision-table",[699],{"type":48,"value":700},"Decision table",{"type":43,"tag":171,"props":702,"children":703},{},[704,720],{"type":43,"tag":175,"props":705,"children":706},{},[707],{"type":43,"tag":179,"props":708,"children":709},{},[710,715],{"type":43,"tag":183,"props":711,"children":712},{},[713],{"type":48,"value":714},"Scenario",{"type":43,"tag":183,"props":716,"children":717},{},[718],{"type":48,"value":719},"Recommendation",{"type":43,"tag":721,"props":722,"children":723},"tbody",{},[724,738,751,763,775,787],{"type":43,"tag":179,"props":725,"children":726},{},[727,733],{"type":43,"tag":728,"props":729,"children":730},"td",{},[731],{"type":48,"value":732},"Development \u002F testing",{"type":43,"tag":728,"props":734,"children":735},{},[736],{"type":48,"value":737},"Essentials (free tier if available)",{"type":43,"tag":179,"props":739,"children":740},{},[741,746],{"type":43,"tag":728,"props":742,"children":743},{},[744],{"type":48,"value":745},"Small production (\u003C 1 GB, \u003C 1000 ops\u002Fs)",{"type":43,"tag":728,"props":747,"children":748},{},[749],{"type":48,"value":750},"Essentials paid",{"type":43,"tag":179,"props":752,"children":753},{},[754,759],{"type":43,"tag":728,"props":755,"children":756},{},[757],{"type":48,"value":758},"Production with modules (Search, JSON, etc.)",{"type":43,"tag":728,"props":760,"children":761},{},[762],{"type":48,"value":136},{"type":43,"tag":179,"props":764,"children":765},{},[766,771],{"type":43,"tag":728,"props":767,"children":768},{},[769],{"type":48,"value":770},"Multi-AZ or high availability required",{"type":43,"tag":728,"props":772,"children":773},{},[774],{"type":48,"value":136},{"type":43,"tag":179,"props":776,"children":777},{},[778,783],{"type":43,"tag":728,"props":779,"children":780},{},[781],{"type":48,"value":782},"Active-Active (multi-region)",{"type":43,"tag":728,"props":784,"children":785},{},[786],{"type":48,"value":136},{"type":43,"tag":179,"props":788,"children":789},{},[790,795],{"type":43,"tag":728,"props":791,"children":792},{},[793],{"type":48,"value":794},"Uncertain",{"type":43,"tag":728,"props":796,"children":797},{},[798],{"type":48,"value":799},"Start with Essentials; migrate to Pro when needed",{"type":43,"tag":51,"props":801,"children":803},{"id":802},"common-issues",[804],{"type":48,"value":805},"Common issues",{"type":43,"tag":114,"props":807,"children":808},{},[809,833,858,875],{"type":43,"tag":118,"props":810,"children":811},{},[812,817,819,824,826,831],{"type":43,"tag":122,"props":813,"children":814},{},[815],{"type":48,"value":816},"Pro task timeout",{"type":48,"value":818},": Pro subscriptions typically take 5-15 minutes to provision. If ",{"type":43,"tag":70,"props":820,"children":822},{"className":821},[],[823],{"type":48,"value":503},{"type":48,"value":825}," times out, use ",{"type":43,"tag":70,"props":827,"children":829},{"className":828},[],[830],{"type":48,"value":523},{"type":48,"value":832}," with the task ID to continue polling.",{"type":43,"tag":118,"props":834,"children":835},{},[836,841,843,848,850,856],{"type":43,"tag":122,"props":837,"children":838},{},[839],{"type":48,"value":840},"Plan not available in region",{"type":48,"value":842},": call ",{"type":43,"tag":70,"props":844,"children":846},{"className":845},[],[847],{"type":48,"value":167},{"type":48,"value":849}," and check the ",{"type":43,"tag":70,"props":851,"children":853},{"className":852},[],[854],{"type":48,"value":855},"region",{"type":48,"value":857}," field to find plans in the target region.",{"type":43,"tag":118,"props":859,"children":860},{},[861,866,868,873],{"type":43,"tag":122,"props":862,"children":863},{},[864],{"type":48,"value":865},"Subscription limit reached",{"type":48,"value":867},": check ",{"type":43,"tag":70,"props":869,"children":871},{"className":870},[],[872],{"type":48,"value":75},{"type":48,"value":874}," for subscription limits; delete an unused subscription first if needed.",{"type":43,"tag":118,"props":876,"children":877},{},[878,883,885,891,893,899,901,906],{"type":43,"tag":122,"props":879,"children":880},{},[881],{"type":48,"value":882},"Database not active after creation",{"type":48,"value":884},": for Pro databases, the database transitions through ",{"type":43,"tag":70,"props":886,"children":888},{"className":887},[],[889],{"type":48,"value":890},"pending",{"type":48,"value":892}," to ",{"type":43,"tag":70,"props":894,"children":896},{"className":895},[],[897],{"type":48,"value":898},"active",{"type":48,"value":900},"; poll ",{"type":43,"tag":70,"props":902,"children":904},{"className":903},[],[905],{"type":48,"value":549},{"type":48,"value":907}," every 10-15 seconds until active.",{"type":43,"tag":909,"props":910,"children":911},"style",{},[912],{"type":48,"value":913},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":915,"total":1008},[916,923,938,953,966,979,997],{"slug":4,"name":4,"fn":5,"description":6,"org":917,"tags":918,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[919,920,921,922],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":924,"name":924,"fn":925,"description":926,"org":927,"tags":928,"stars":23,"repoUrl":24,"updatedAt":937},"compare-approaches","prototype Redis data model alternatives","Prototype and compare 2-3 Redis data model alternatives for the same workload",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[929,932,933,936],{"name":930,"slug":931,"type":15},"Data Modeling","data-modeling",{"name":13,"slug":14,"type":15},{"name":934,"slug":935,"type":15},"Prototyping","prototyping",{"name":9,"slug":8,"type":15},"2026-05-27T07:19:55.591944",{"slug":939,"name":939,"fn":940,"description":941,"org":942,"tags":943,"stars":23,"repoUrl":24,"updatedAt":952},"data-explorer","explore and profile Redis datasets","Profile and explore a Redis dataset - key types, sizes, TTLs, encodings, and sample values",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[944,947,948,951],{"name":945,"slug":946,"type":15},"Data Analysis","data-analysis",{"name":13,"slug":14,"type":15},{"name":949,"slug":950,"type":15},"Observability","observability",{"name":9,"slug":8,"type":15},"2026-05-28T07:09:52.268662",{"slug":954,"name":954,"fn":955,"description":956,"org":957,"tags":958,"stars":23,"repoUrl":24,"updatedAt":965},"data-modeling-advisor","design Redis data models","Recommend Redis data structures and patterns for a given workload before committing to an approach",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[959,962,963,964],{"name":960,"slug":961,"type":15},"Architecture","architecture",{"name":930,"slug":931,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-05-28T07:09:51.028825",{"slug":967,"name":967,"fn":968,"description":969,"org":970,"tags":971,"stars":23,"repoUrl":24,"updatedAt":978},"enterprise-health-check","perform Redis Enterprise cluster health checks","Comprehensive pre-operation health check for a Redis Enterprise cluster — verify cluster state, node health, license status, and active alerts before making changes",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[972,973,974,977],{"name":13,"slug":14,"type":15},{"name":949,"slug":950,"type":15},{"name":975,"slug":976,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},"2026-06-03T07:52:59.693017",{"slug":980,"name":980,"fn":981,"description":982,"org":983,"tags":984,"stars":23,"repoUrl":24,"updatedAt":996},"index-ab-test","compare RediSearch index configurations","Create and compare multiple RediSearch index configurations to find the best one",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[985,988,989,992,993],{"name":986,"slug":987,"type":15},"A\u002FB Testing","a-b-testing",{"name":13,"slug":14,"type":15},{"name":990,"slug":991,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},{"name":994,"slug":995,"type":15},"Search","search","2026-05-28T07:09:53.54884",{"slug":998,"name":998,"fn":999,"description":1000,"org":1001,"tags":1002,"stars":23,"repoUrl":24,"updatedAt":1007},"index-advisor","recommend RediSearch index schemas","Analyze a Redis dataset and recommend an optimal RediSearch index schema",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1003,1004,1005,1006],{"name":930,"slug":931,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":994,"slug":995,"type":15},"2026-05-28T07:09:48.520606",17,{"items":1010,"total":1178},[1011,1032,1046,1059,1070,1086,1100,1120,1134,1149,1164,1171],{"slug":1012,"name":1012,"fn":1013,"description":1014,"org":1015,"tags":1016,"stars":1029,"repoUrl":1030,"updatedAt":1031},"iris-development","integrate with Redis Iris AI products","Iris is Redis's umbrella for AI-focused products. Use this skill when integrating with the Iris Redis Agent Memory (RAM) data plane on Redis Cloud — recording session events for an AI agent, creating or searching long-term memories, configuring a memory store, or tuning background memory promotion. Code examples use the official `redis-agent-memory` (Python) and `@redis-iris\u002Fagent-memory` (TypeScript) SDKs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1017,1020,1023,1026,1028],{"name":1018,"slug":1019,"type":15},"Agents","agents",{"name":1021,"slug":1022,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1024,"slug":1025,"type":15},"Backend","backend",{"name":197,"slug":1027,"type":15},"memory",{"name":9,"slug":8,"type":15},92,"https:\u002F\u002Fgithub.com\u002Fredis\u002Fagent-skills","2026-05-27T07:19:45.213725",{"slug":1033,"name":1033,"fn":1034,"description":1035,"org":1036,"tags":1037,"stars":1029,"repoUrl":1030,"updatedAt":1045},"redis-clustering","configure Redis clustering and replication","Redis Cluster and replication guidance covering hash tags for multi-key operations, avoiding CROSSSLOT errors, and reading from replicas to scale read-heavy workloads. Use when designing keys for a sharded Redis Cluster, debugging CROSSSLOT errors on MGET \u002F SDIFF \u002F pipelines, configuring a multi-key transaction in a cluster, or routing reads to replicas for caches, analytics, or dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1038,1039,1040,1043,1044],{"name":960,"slug":961,"type":15},{"name":13,"slug":14,"type":15},{"name":1041,"slug":1042,"type":15},"Infrastructure","infrastructure",{"name":990,"slug":991,"type":15},{"name":9,"slug":8,"type":15},"2026-05-27T07:19:38.757599",{"slug":1047,"name":1047,"fn":1048,"description":1049,"org":1050,"tags":1051,"stars":1029,"repoUrl":1030,"updatedAt":1058},"redis-connections","optimize Redis client connections","Redis client and connection guidance covering connection pooling, multiplexing, pipelining, client-side caching with RESP3, avoiding slow commands (KEYS, SMEMBERS, HGETALL), and tuning socket timeouts. Use when configuring a Redis client (redis-py, Jedis, Lettuce, NRedisStack), batching commands for throughput, eliminating per-request connection creation, iterating large keyspaces with SCAN, enabling client-side caching for read-heavy workloads, or setting connect and read timeouts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1052,1053,1056,1057],{"name":1024,"slug":1025,"type":15},{"name":1054,"slug":1055,"type":15},"Caching","caching",{"name":990,"slug":991,"type":15},{"name":9,"slug":8,"type":15},"2026-05-27T07:19:42.616757",{"slug":1060,"name":1060,"fn":1061,"description":1062,"org":1063,"tags":1064,"stars":1029,"repoUrl":1030,"updatedAt":1069},"redis-core","model data with Redis structures","Core Redis modeling guidance — choose the right data structure (String, Hash, List, Set, Sorted Set, JSON, Stream, Vector Set) and use consistent colon-separated key names. Use when designing a Redis data model, caching objects, deciding between Hash and JSON, building counters, leaderboards, membership sets, or session stores, or when reviewing\u002Fcleaning up Redis key naming.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1065,1066,1067,1068],{"name":960,"slug":961,"type":15},{"name":930,"slug":931,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-05-27T07:19:41.317954",{"slug":1071,"name":1071,"fn":1072,"description":1073,"org":1074,"tags":1075,"stars":1029,"repoUrl":1030,"updatedAt":1085},"redis-observability","monitor and triage Redis performance","Redis observability guidance — which metrics to monitor (memory, connections, hit ratio, ops\u002Fsec, rejected connections), which built-in commands to reach for during incident triage (SLOWLOG, INFO, MEMORY DOCTOR, CLIENT LIST, FT.PROFILE), and when to use the Redis Insight GUI. Use when setting up monitoring or alerts for a Redis instance, diagnosing a performance regression, profiling a slow FT.SEARCH query, or wiring Redis metrics into Prometheus, Datadog, or similar.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1076,1079,1082,1083,1084],{"name":1077,"slug":1078,"type":15},"Debugging","debugging",{"name":1080,"slug":1081,"type":15},"Monitoring","monitoring",{"name":949,"slug":950,"type":15},{"name":990,"slug":991,"type":15},{"name":9,"slug":8,"type":15},"2026-05-27T07:19:47.780873",{"slug":1087,"name":1087,"fn":1088,"description":1089,"org":1090,"tags":1091,"stars":1029,"repoUrl":1030,"updatedAt":1099},"redis-search","implement Redis Search indexing and queries","Redis Search guidance covering FT.CREATE schema design, field type selection (TEXT, TAG, NUMERIC, GEO, GEOSHAPE, VECTOR, JSON path), DIALECT 2 query syntax, FT.SEARCH \u002F FT.AGGREGATE \u002F FT.HYBRID command selection, vector similarity with HNSW or FLAT, hybrid retrieval combining lexical and vector ranking, RAG pipelines, zero-downtime index updates via aliases, and debugging with FT.PROFILE and FT.EXPLAIN. Use when defining a search index on Hash or JSON documents, writing FT.SEARCH queries with filters, sorting, aggregation, or vector KNN, tuning HNSW parameters, building a RAG retrieval pipeline, or troubleshooting slow or empty search results.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1092,1093,1094,1097,1098],{"name":960,"slug":961,"type":15},{"name":13,"slug":14,"type":15},{"name":1095,"slug":1096,"type":15},"Engineering","engineering",{"name":9,"slug":8,"type":15},{"name":994,"slug":995,"type":15},"2026-06-24T07:39:43.089819",{"slug":1101,"name":1101,"fn":1102,"description":1103,"org":1104,"tags":1105,"stars":1029,"repoUrl":1030,"updatedAt":1119},"redis-security","secure Redis instances and clusters","Redis security guidance covering authentication (requirepass and ACL users), TLS, ACL-based least-privilege access control, restricting network exposure via bind and protected-mode, firewall rules, and disabling dangerous commands. Use when deploying Redis to production, defining ACL users for an application, configuring TLS connections, locking down a Redis instance behind a firewall, or auditing a Redis deployment for security hardening.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1106,1109,1112,1115,1116],{"name":1107,"slug":1108,"type":15},"Access Control","access-control",{"name":1110,"slug":1111,"type":15},"Authentication","authentication",{"name":1113,"slug":1114,"type":15},"Compliance","compliance",{"name":9,"slug":8,"type":15},{"name":1117,"slug":1118,"type":15},"Security","security","2026-05-27T07:19:40.030241",{"slug":1121,"name":1121,"fn":1122,"description":1123,"org":1124,"tags":1125,"stars":1029,"repoUrl":1030,"updatedAt":1133},"redis-semantic-cache","implement semantic caching with Redis","Redis LangCache guidance for semantic caching of LLM responses on Redis Cloud — calling search\u002Fset via the SDK or REST API, tuning the similarity threshold, separating caches per task type, and filtering with custom attributes. Use when caching LLM completions or RAG answers to cut API cost and latency, building a cache-aside layer in front of OpenAI \u002F Anthropic \u002F etc., tuning hit rate vs precision, or splitting one app's LLM workloads into multiple LangCache caches.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1126,1127,1128,1131,1132],{"name":1021,"slug":1022,"type":15},{"name":1054,"slug":1055,"type":15},{"name":1129,"slug":1130,"type":15},"LLM","llm",{"name":9,"slug":8,"type":15},{"name":994,"slug":995,"type":15},"2026-05-27T07:19:43.897283",{"slug":1135,"name":1135,"fn":1136,"description":1137,"org":1138,"tags":1139,"stars":1146,"repoUrl":1147,"updatedAt":1148},"agent-filesystem","manage persistent storage in Redis","Use when agents need persistent shared storage, when saving or restoring workspace state, or when coordinating file access across multiple agents and machines. Creates Redis-backed workspaces, checkpoints and restores agent state, mounts shared filesystems locally, searches workspace contents, and forks workspaces for parallel work.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1140,1141,1144,1145],{"name":1018,"slug":1019,"type":15},{"name":1142,"slug":1143,"type":15},"File Storage","file-storage",{"name":197,"slug":1027,"type":15},{"name":9,"slug":8,"type":15},22,"https:\u002F\u002Fgithub.com\u002Fredis\u002Fagent-filesystem","2026-04-10T04:51:05.904489",{"slug":1150,"name":1150,"fn":1151,"description":1152,"org":1153,"tags":1154,"stars":1146,"repoUrl":1147,"updatedAt":1163},"codex-settings-sync","sync Codex settings across computers","Use when the user wants to migrate Codex state in ~\u002F.codex into Agent Filesystem and mount the same shared Codex memory\u002Fsettings across multiple computers. Recommends a .afsignore before migration and defaults to excluding worktrees, caches, logs, and temporary files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1155,1158,1159,1162],{"name":1156,"slug":1157,"type":15},"Codex","codex",{"name":197,"slug":1027,"type":15},{"name":1160,"slug":1161,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-04-10T04:51:07.268248",{"slug":4,"name":4,"fn":5,"description":6,"org":1165,"tags":1166,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1167,1168,1169,1170],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":924,"name":924,"fn":925,"description":926,"org":1172,"tags":1173,"stars":23,"repoUrl":24,"updatedAt":937},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1174,1175,1176,1177],{"name":930,"slug":931,"type":15},{"name":13,"slug":14,"type":15},{"name":934,"slug":935,"type":15},{"name":9,"slug":8,"type":15},27]