[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-upstash-redis-js":3,"mdc-cem8sr-key":35,"related-org-upstash-redis-js":3073,"related-repo-upstash-redis-js":3246},{"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":30,"sourceUrl":33,"mdContent":34},"redis-js","manage serverless Redis with Upstash","Work with the Upstash Redis JavaScript\u002FTypeScript SDK for serverless Redis operations. Use for caching, session storage, rate limiting, leaderboards, full-text search (querying, filtering, aggregating with @upstash\u002Fredis search extension), and all Redis data structures. Supports automatic serialization\u002Fdeserialization of JavaScript types. Search also available via @upstash\u002Fsearch-redis and @upstash\u002Fsearch-ioredis adapters for TCP clients.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"upstash","Upstash","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fupstash.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Node.js","node-js","tag",{"name":17,"slug":18,"type":15},"Redis","redis",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Serverless","serverless",959,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fredis-js","2026-04-06T18:55:06.549589",null,91,[18,22,8,29],"upstash-sdk",{"repoUrl":24,"stars":23,"forks":27,"topics":31,"description":32},[18,22,8,29],"HTTP based Redis Client for Serverless and Edge Functions","https:\u002F\u002Fgithub.com\u002Fupstash\u002Fredis-js\u002Ftree\u002FHEAD\u002Fskills","---\nname: redis-js\ndescription: Work with the Upstash Redis JavaScript\u002FTypeScript SDK for serverless Redis operations. Use for caching, session storage, rate limiting, leaderboards, full-text search (querying, filtering, aggregating with @upstash\u002Fredis search extension), and all Redis data structures. Supports automatic serialization\u002Fdeserialization of JavaScript types. Search also available via @upstash\u002Fsearch-redis and @upstash\u002Fsearch-ioredis adapters for TCP clients.\n---\n\n# Upstash Redis SDK - Complete Skills Guide\n\nThis directory contains comprehensive guides for using the `@upstash\u002Fredis` SDK. These skill files are designed to help developers and AI assistants understand and use the SDK effectively.\n\n## Installation\n\n```bash\nnpm install @upstash\u002Fredis\n```\n\n## Quick Start\n\n### Basic Initialization\n\n```typescript\nimport { Redis } from \"@upstash\u002Fredis\";\n\n\u002F\u002F Initialize with explicit credentials\nconst redis = new Redis({\n  url: \"UPSTASH_REDIS_REST_URL\",\n  token: \"UPSTASH_REDIS_REST_TOKEN\",\n});\n\n\u002F\u002F Or initialize from environment variables\nconst redis = Redis.fromEnv();\n```\n\n### Environment Variables\n\nSet these in your `.env` file:\n\n```bash\nUPSTASH_REDIS_REST_URL=https:\u002F\u002Fyour-redis.upstash.io\nUPSTASH_REDIS_REST_TOKEN=your-token-here\n```\n\n## Skill Files Overview\n\n### Data Structures (skills\u002Fdata-structures\u002F)\n\nRedis data types with auto-serialization examples:\n\n- **strings.md** - GET, SET, INCR, DECR, APPEND with automatic type handling\n- **hashes.md** - HSET, HGET, HMGET with object serialization\n- **lists.md** - LPUSH, RPUSH, LRANGE with array handling\n- **sets.md** - SADD, SMEMBERS, set operations\n- **sorted-sets.md** - ZADD, ZRANGE, ZRANK, leaderboard patterns\n- **json.md** - JSON.SET, JSON.GET, JSONPath queries for nested objects\n- **streams.md** - XADD, XREAD, XGROUP, consumer groups\n\n### Advanced Features (skills\u002Fadvanced-features\u002F)\n\nComplex operations and optimizations:\n\n- **auto-pipeline.md** - Automatic request batching, performance optimization\n- **pipeline-and-transactions.md** - Manual pipelines, MULTI\u002FEXEC, WATCH for atomic operations\n- **scripting.md** - Lua scripts, EVAL, EVALSHA for server-side logic\n\n### Patterns (skills\u002Fpatterns\u002F)\n\nCommon use cases and architectural patterns:\n\n- **caching.md** - Cache-aside, write-through, TTL strategies\n- **rate-limiting.md** - Integration with @upstash\u002Fratelimit package\n- **session-management.md** - Session storage and user state management\n- **distributed-locks.md** - Lock implementations, deadlock prevention\n- **leaderboard.md** - Sorted set leaderboards, real-time rankings\n\n### Performance (skills\u002Fperformance\u002F)\n\nOptimization techniques and best practices:\n\n- **batching-operations.md** - MGET, MSET, batch operations\n- **pipeline-optimization.md** - When to use pipelines, performance tips\n- **ttl-expiration.md** - Key expiration strategies, memory management\n- **data-serialization.md** - Deep dive into auto serialization, custom serializers, edge cases\n- **error-handling.md** - Error types, retry strategies, timeout handling, debugging tips\n- **redis-replicas.md** - Global database setup, read replicas, read-your-writes consistency\n\n### Search (skills\u002Fsearch\u002F)\n\nFull-text search, filtering, and aggregation extension for Redis:\n\n- **overview.md** - Schema definition, field types, pitfalls, package overview\n- **commands\u002Fquerying.md** - Query and count with filters, pagination, sorting, highlighting\n- **commands\u002Faggregating.md** - Metric aggregations ($avg, $sum, $stats), bucket aggregations ($terms, $range, $histogram, $facet)\n- **commands\u002Findex-management.md** - Create, describe, drop indexes, waitIndexing\n- **commands\u002Faliases.md** - Index aliases for zero-downtime reindexing\n- **adapters.md** - Using search with node-redis and ioredis via @upstash\u002Fsearch-redis and @upstash\u002Fsearch-ioredis\n\n### Migrations (skills\u002Fmigrations\u002F)\n\nMigration guides from other libraries:\n\n- **from-ioredis.md** - Migration from ioredis, key differences, serialization changes\n- **from-redis-node.md** - Migration from node-redis, API differences\n\n## Common Mistakes (Especially for LLMs)\n\n### ❌ Mistake 1: Treating Everything as Strings\n\n```typescript\n\u002F\u002F ❌ WRONG - Don't do this with @upstash\u002Fredis\nawait redis.set(\"count\", \"42\"); \u002F\u002F Stored as string \"42\"\nconst count = await redis.get(\"count\");\nconst incremented = parseInt(count) + 1; \u002F\u002F Manual parsing needed\n\n\u002F\u002F ✅ CORRECT - Let the SDK handle it\nawait redis.set(\"count\", 42); \u002F\u002F Stored as number\nconst count = await redis.get(\"count\");\nconst incremented = count + 1; \u002F\u002F Just use it\n```\n\n### ❌ Mistake 2: Manual JSON Serialization\n\n```typescript\n\u002F\u002F ❌ WRONG - Unnecessary with @upstash\u002Fredis\nawait redis.set(\"user\", JSON.stringify({ name: \"Alice\" }));\nconst user = JSON.parse(await redis.get(\"user\"));\n\n\u002F\u002F ✅ CORRECT - Automatic handling\nawait redis.set(\"user\", { name: \"Alice\" });\nconst user = await redis.get(\"user\");\n```\n\n## Quick Command Reference\n\n```typescript\n\u002F\u002F Strings\nawait redis.set(\"key\", \"value\");\nawait redis.get(\"key\");\nawait redis.incr(\"counter\");\nawait redis.decr(\"counter\");\n\n\u002F\u002F Hashes\nawait redis.hset(\"user:1\", { name: \"Alice\", age: 30 });\nawait redis.hget(\"user:1\", \"name\");\nawait redis.hgetall(\"user:1\");\n\n\u002F\u002F Lists\nawait redis.lpush(\"tasks\", \"task1\", \"task2\");\nawait redis.rpush(\"tasks\", \"task3\");\nawait redis.lrange(\"tasks\", 0, -1);\n\n\u002F\u002F Sets\nawait redis.sadd(\"tags\", \"javascript\", \"redis\");\nawait redis.smembers(\"tags\");\n\n\u002F\u002F Sorted Sets\nawait redis.zadd(\"leaderboard\", { score: 100, member: \"player1\" });\nawait redis.zrange(\"leaderboard\", 0, -1);\n\n\u002F\u002F JSON\nawait redis.json.set(\"user:1\", \"$\", { name: \"Alice\", address: { city: \"NYC\" } });\nawait redis.json.get(\"user:1\");\n\n\u002F\u002F Expiration\nawait redis.setex(\"session\", 3600, { userId: \"123\" });\nawait redis.expire(\"key\", 60);\nawait redis.ttl(\"key\");\n```\n\n## Best Practices\n\n1. **Use environment variables** for credentials, never hardcode\n2. **Leverage auto-serialization** - pass native JavaScript types\n3. **Use TypeScript types** for better type safety\n4. **Set appropriate TTLs** to manage memory\n5. **Use pipelines** for multiple operations\n6. **Namespace your keys** (e.g., `user:123`, `session:abc`)\n\n## Resources\n\n- [Official Documentation](https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis)\n- [GitHub Repository](https:\u002F\u002Fgithub.com\u002Fupstash\u002Fredis-js)\n- [API Reference](https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fts\u002Foverview)\n- [Examples](https:\u002F\u002Fgithub.com\u002Fupstash\u002Fredis-js\u002Ftree\u002Fmain\u002Fexamples)\n\n## Getting Help\n\nFor detailed information on specific topics, refer to the individual skill files in the `skills\u002F` directory. Each file contains comprehensive examples, use cases, and best practices for its topic.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,64,71,105,111,118,374,380,393,432,438,444,449,525,531,536,569,575,580,633,639,644,707,713,718,781,787,792,815,821,827,1180,1186,1517,1523,2913,2919,2998,3004,3048,3054,3067],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"upstash-redis-sdk-complete-skills-guide",[46],{"type":47,"value":48},"text","Upstash Redis SDK - Complete Skills Guide",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53,55,62],{"type":47,"value":54},"This directory contains comprehensive guides for using the ",{"type":41,"tag":56,"props":57,"children":59},"code",{"className":58},[],[60],{"type":47,"value":61},"@upstash\u002Fredis",{"type":47,"value":63}," SDK. These skill files are designed to help developers and AI assistants understand and use the SDK effectively.",{"type":41,"tag":65,"props":66,"children":68},"h2",{"id":67},"installation",[69],{"type":47,"value":70},"Installation",{"type":41,"tag":72,"props":73,"children":78},"pre",{"className":74,"code":75,"language":76,"meta":77,"style":77},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @upstash\u002Fredis\n","bash","",[79],{"type":41,"tag":56,"props":80,"children":81},{"__ignoreMap":77},[82],{"type":41,"tag":83,"props":84,"children":87},"span",{"class":85,"line":86},"line",1,[88,94,100],{"type":41,"tag":83,"props":89,"children":91},{"style":90},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[92],{"type":47,"value":93},"npm",{"type":41,"tag":83,"props":95,"children":97},{"style":96},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[98],{"type":47,"value":99}," install",{"type":41,"tag":83,"props":101,"children":102},{"style":96},[103],{"type":47,"value":104}," @upstash\u002Fredis\n",{"type":41,"tag":65,"props":106,"children":108},{"id":107},"quick-start",[109],{"type":47,"value":110},"Quick Start",{"type":41,"tag":112,"props":113,"children":115},"h3",{"id":114},"basic-initialization",[116],{"type":47,"value":117},"Basic Initialization",{"type":41,"tag":72,"props":119,"children":123},{"className":120,"code":121,"language":122,"meta":77,"style":77},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Redis } from \"@upstash\u002Fredis\";\n\n\u002F\u002F Initialize with explicit credentials\nconst redis = new Redis({\n  url: \"UPSTASH_REDIS_REST_URL\",\n  token: \"UPSTASH_REDIS_REST_TOKEN\",\n});\n\n\u002F\u002F Or initialize from environment variables\nconst redis = Redis.fromEnv();\n","typescript",[124],{"type":41,"tag":56,"props":125,"children":126},{"__ignoreMap":77},[127,177,187,197,237,270,300,318,326,335],{"type":41,"tag":83,"props":128,"children":129},{"class":85,"line":86},[130,136,142,148,153,158,163,167,172],{"type":41,"tag":83,"props":131,"children":133},{"style":132},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[134],{"type":47,"value":135},"import",{"type":41,"tag":83,"props":137,"children":139},{"style":138},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[140],{"type":47,"value":141}," {",{"type":41,"tag":83,"props":143,"children":145},{"style":144},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[146],{"type":47,"value":147}," Redis",{"type":41,"tag":83,"props":149,"children":150},{"style":138},[151],{"type":47,"value":152}," }",{"type":41,"tag":83,"props":154,"children":155},{"style":132},[156],{"type":47,"value":157}," from",{"type":41,"tag":83,"props":159,"children":160},{"style":138},[161],{"type":47,"value":162}," \"",{"type":41,"tag":83,"props":164,"children":165},{"style":96},[166],{"type":47,"value":61},{"type":41,"tag":83,"props":168,"children":169},{"style":138},[170],{"type":47,"value":171},"\"",{"type":41,"tag":83,"props":173,"children":174},{"style":138},[175],{"type":47,"value":176},";\n",{"type":41,"tag":83,"props":178,"children":180},{"class":85,"line":179},2,[181],{"type":41,"tag":83,"props":182,"children":184},{"emptyLinePlaceholder":183},true,[185],{"type":47,"value":186},"\n",{"type":41,"tag":83,"props":188,"children":190},{"class":85,"line":189},3,[191],{"type":41,"tag":83,"props":192,"children":194},{"style":193},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[195],{"type":47,"value":196},"\u002F\u002F Initialize with explicit credentials\n",{"type":41,"tag":83,"props":198,"children":200},{"class":85,"line":199},4,[201,207,212,217,222,227,232],{"type":41,"tag":83,"props":202,"children":204},{"style":203},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[205],{"type":47,"value":206},"const",{"type":41,"tag":83,"props":208,"children":209},{"style":144},[210],{"type":47,"value":211}," redis ",{"type":41,"tag":83,"props":213,"children":214},{"style":138},[215],{"type":47,"value":216},"=",{"type":41,"tag":83,"props":218,"children":219},{"style":138},[220],{"type":47,"value":221}," new",{"type":41,"tag":83,"props":223,"children":225},{"style":224},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[226],{"type":47,"value":147},{"type":41,"tag":83,"props":228,"children":229},{"style":144},[230],{"type":47,"value":231},"(",{"type":41,"tag":83,"props":233,"children":234},{"style":138},[235],{"type":47,"value":236},"{\n",{"type":41,"tag":83,"props":238,"children":240},{"class":85,"line":239},5,[241,247,252,256,261,265],{"type":41,"tag":83,"props":242,"children":244},{"style":243},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[245],{"type":47,"value":246},"  url",{"type":41,"tag":83,"props":248,"children":249},{"style":138},[250],{"type":47,"value":251},":",{"type":41,"tag":83,"props":253,"children":254},{"style":138},[255],{"type":47,"value":162},{"type":41,"tag":83,"props":257,"children":258},{"style":96},[259],{"type":47,"value":260},"UPSTASH_REDIS_REST_URL",{"type":41,"tag":83,"props":262,"children":263},{"style":138},[264],{"type":47,"value":171},{"type":41,"tag":83,"props":266,"children":267},{"style":138},[268],{"type":47,"value":269},",\n",{"type":41,"tag":83,"props":271,"children":273},{"class":85,"line":272},6,[274,279,283,287,292,296],{"type":41,"tag":83,"props":275,"children":276},{"style":243},[277],{"type":47,"value":278},"  token",{"type":41,"tag":83,"props":280,"children":281},{"style":138},[282],{"type":47,"value":251},{"type":41,"tag":83,"props":284,"children":285},{"style":138},[286],{"type":47,"value":162},{"type":41,"tag":83,"props":288,"children":289},{"style":96},[290],{"type":47,"value":291},"UPSTASH_REDIS_REST_TOKEN",{"type":41,"tag":83,"props":293,"children":294},{"style":138},[295],{"type":47,"value":171},{"type":41,"tag":83,"props":297,"children":298},{"style":138},[299],{"type":47,"value":269},{"type":41,"tag":83,"props":301,"children":303},{"class":85,"line":302},7,[304,309,314],{"type":41,"tag":83,"props":305,"children":306},{"style":138},[307],{"type":47,"value":308},"}",{"type":41,"tag":83,"props":310,"children":311},{"style":144},[312],{"type":47,"value":313},")",{"type":41,"tag":83,"props":315,"children":316},{"style":138},[317],{"type":47,"value":176},{"type":41,"tag":83,"props":319,"children":321},{"class":85,"line":320},8,[322],{"type":41,"tag":83,"props":323,"children":324},{"emptyLinePlaceholder":183},[325],{"type":47,"value":186},{"type":41,"tag":83,"props":327,"children":329},{"class":85,"line":328},9,[330],{"type":41,"tag":83,"props":331,"children":332},{"style":193},[333],{"type":47,"value":334},"\u002F\u002F Or initialize from environment variables\n",{"type":41,"tag":83,"props":336,"children":338},{"class":85,"line":337},10,[339,343,347,351,355,360,365,370],{"type":41,"tag":83,"props":340,"children":341},{"style":203},[342],{"type":47,"value":206},{"type":41,"tag":83,"props":344,"children":345},{"style":144},[346],{"type":47,"value":211},{"type":41,"tag":83,"props":348,"children":349},{"style":138},[350],{"type":47,"value":216},{"type":41,"tag":83,"props":352,"children":353},{"style":144},[354],{"type":47,"value":147},{"type":41,"tag":83,"props":356,"children":357},{"style":138},[358],{"type":47,"value":359},".",{"type":41,"tag":83,"props":361,"children":362},{"style":224},[363],{"type":47,"value":364},"fromEnv",{"type":41,"tag":83,"props":366,"children":367},{"style":144},[368],{"type":47,"value":369},"()",{"type":41,"tag":83,"props":371,"children":372},{"style":138},[373],{"type":47,"value":176},{"type":41,"tag":112,"props":375,"children":377},{"id":376},"environment-variables",[378],{"type":47,"value":379},"Environment Variables",{"type":41,"tag":50,"props":381,"children":382},{},[383,385,391],{"type":47,"value":384},"Set these in your ",{"type":41,"tag":56,"props":386,"children":388},{"className":387},[],[389],{"type":47,"value":390},".env",{"type":47,"value":392}," file:",{"type":41,"tag":72,"props":394,"children":396},{"className":74,"code":395,"language":76,"meta":77,"style":77},"UPSTASH_REDIS_REST_URL=https:\u002F\u002Fyour-redis.upstash.io\nUPSTASH_REDIS_REST_TOKEN=your-token-here\n",[397],{"type":41,"tag":56,"props":398,"children":399},{"__ignoreMap":77},[400,416],{"type":41,"tag":83,"props":401,"children":402},{"class":85,"line":86},[403,407,411],{"type":41,"tag":83,"props":404,"children":405},{"style":144},[406],{"type":47,"value":260},{"type":41,"tag":83,"props":408,"children":409},{"style":138},[410],{"type":47,"value":216},{"type":41,"tag":83,"props":412,"children":413},{"style":96},[414],{"type":47,"value":415},"https:\u002F\u002Fyour-redis.upstash.io\n",{"type":41,"tag":83,"props":417,"children":418},{"class":85,"line":179},[419,423,427],{"type":41,"tag":83,"props":420,"children":421},{"style":144},[422],{"type":47,"value":291},{"type":41,"tag":83,"props":424,"children":425},{"style":138},[426],{"type":47,"value":216},{"type":41,"tag":83,"props":428,"children":429},{"style":96},[430],{"type":47,"value":431},"your-token-here\n",{"type":41,"tag":65,"props":433,"children":435},{"id":434},"skill-files-overview",[436],{"type":47,"value":437},"Skill Files Overview",{"type":41,"tag":112,"props":439,"children":441},{"id":440},"data-structures-skillsdata-structures",[442],{"type":47,"value":443},"Data Structures (skills\u002Fdata-structures\u002F)",{"type":41,"tag":50,"props":445,"children":446},{},[447],{"type":47,"value":448},"Redis data types with auto-serialization examples:",{"type":41,"tag":450,"props":451,"children":452},"ul",{},[453,465,475,485,495,505,515],{"type":41,"tag":454,"props":455,"children":456},"li",{},[457,463],{"type":41,"tag":458,"props":459,"children":460},"strong",{},[461],{"type":47,"value":462},"strings.md",{"type":47,"value":464}," - GET, SET, INCR, DECR, APPEND with automatic type handling",{"type":41,"tag":454,"props":466,"children":467},{},[468,473],{"type":41,"tag":458,"props":469,"children":470},{},[471],{"type":47,"value":472},"hashes.md",{"type":47,"value":474}," - HSET, HGET, HMGET with object serialization",{"type":41,"tag":454,"props":476,"children":477},{},[478,483],{"type":41,"tag":458,"props":479,"children":480},{},[481],{"type":47,"value":482},"lists.md",{"type":47,"value":484}," - LPUSH, RPUSH, LRANGE with array handling",{"type":41,"tag":454,"props":486,"children":487},{},[488,493],{"type":41,"tag":458,"props":489,"children":490},{},[491],{"type":47,"value":492},"sets.md",{"type":47,"value":494}," - SADD, SMEMBERS, set operations",{"type":41,"tag":454,"props":496,"children":497},{},[498,503],{"type":41,"tag":458,"props":499,"children":500},{},[501],{"type":47,"value":502},"sorted-sets.md",{"type":47,"value":504}," - ZADD, ZRANGE, ZRANK, leaderboard patterns",{"type":41,"tag":454,"props":506,"children":507},{},[508,513],{"type":41,"tag":458,"props":509,"children":510},{},[511],{"type":47,"value":512},"json.md",{"type":47,"value":514}," - JSON.SET, JSON.GET, JSONPath queries for nested objects",{"type":41,"tag":454,"props":516,"children":517},{},[518,523],{"type":41,"tag":458,"props":519,"children":520},{},[521],{"type":47,"value":522},"streams.md",{"type":47,"value":524}," - XADD, XREAD, XGROUP, consumer groups",{"type":41,"tag":112,"props":526,"children":528},{"id":527},"advanced-features-skillsadvanced-features",[529],{"type":47,"value":530},"Advanced Features (skills\u002Fadvanced-features\u002F)",{"type":41,"tag":50,"props":532,"children":533},{},[534],{"type":47,"value":535},"Complex operations and optimizations:",{"type":41,"tag":450,"props":537,"children":538},{},[539,549,559],{"type":41,"tag":454,"props":540,"children":541},{},[542,547],{"type":41,"tag":458,"props":543,"children":544},{},[545],{"type":47,"value":546},"auto-pipeline.md",{"type":47,"value":548}," - Automatic request batching, performance optimization",{"type":41,"tag":454,"props":550,"children":551},{},[552,557],{"type":41,"tag":458,"props":553,"children":554},{},[555],{"type":47,"value":556},"pipeline-and-transactions.md",{"type":47,"value":558}," - Manual pipelines, MULTI\u002FEXEC, WATCH for atomic operations",{"type":41,"tag":454,"props":560,"children":561},{},[562,567],{"type":41,"tag":458,"props":563,"children":564},{},[565],{"type":47,"value":566},"scripting.md",{"type":47,"value":568}," - Lua scripts, EVAL, EVALSHA for server-side logic",{"type":41,"tag":112,"props":570,"children":572},{"id":571},"patterns-skillspatterns",[573],{"type":47,"value":574},"Patterns (skills\u002Fpatterns\u002F)",{"type":41,"tag":50,"props":576,"children":577},{},[578],{"type":47,"value":579},"Common use cases and architectural patterns:",{"type":41,"tag":450,"props":581,"children":582},{},[583,593,603,613,623],{"type":41,"tag":454,"props":584,"children":585},{},[586,591],{"type":41,"tag":458,"props":587,"children":588},{},[589],{"type":47,"value":590},"caching.md",{"type":47,"value":592}," - Cache-aside, write-through, TTL strategies",{"type":41,"tag":454,"props":594,"children":595},{},[596,601],{"type":41,"tag":458,"props":597,"children":598},{},[599],{"type":47,"value":600},"rate-limiting.md",{"type":47,"value":602}," - Integration with @upstash\u002Fratelimit package",{"type":41,"tag":454,"props":604,"children":605},{},[606,611],{"type":41,"tag":458,"props":607,"children":608},{},[609],{"type":47,"value":610},"session-management.md",{"type":47,"value":612}," - Session storage and user state management",{"type":41,"tag":454,"props":614,"children":615},{},[616,621],{"type":41,"tag":458,"props":617,"children":618},{},[619],{"type":47,"value":620},"distributed-locks.md",{"type":47,"value":622}," - Lock implementations, deadlock prevention",{"type":41,"tag":454,"props":624,"children":625},{},[626,631],{"type":41,"tag":458,"props":627,"children":628},{},[629],{"type":47,"value":630},"leaderboard.md",{"type":47,"value":632}," - Sorted set leaderboards, real-time rankings",{"type":41,"tag":112,"props":634,"children":636},{"id":635},"performance-skillsperformance",[637],{"type":47,"value":638},"Performance (skills\u002Fperformance\u002F)",{"type":41,"tag":50,"props":640,"children":641},{},[642],{"type":47,"value":643},"Optimization techniques and best practices:",{"type":41,"tag":450,"props":645,"children":646},{},[647,657,667,677,687,697],{"type":41,"tag":454,"props":648,"children":649},{},[650,655],{"type":41,"tag":458,"props":651,"children":652},{},[653],{"type":47,"value":654},"batching-operations.md",{"type":47,"value":656}," - MGET, MSET, batch operations",{"type":41,"tag":454,"props":658,"children":659},{},[660,665],{"type":41,"tag":458,"props":661,"children":662},{},[663],{"type":47,"value":664},"pipeline-optimization.md",{"type":47,"value":666}," - When to use pipelines, performance tips",{"type":41,"tag":454,"props":668,"children":669},{},[670,675],{"type":41,"tag":458,"props":671,"children":672},{},[673],{"type":47,"value":674},"ttl-expiration.md",{"type":47,"value":676}," - Key expiration strategies, memory management",{"type":41,"tag":454,"props":678,"children":679},{},[680,685],{"type":41,"tag":458,"props":681,"children":682},{},[683],{"type":47,"value":684},"data-serialization.md",{"type":47,"value":686}," - Deep dive into auto serialization, custom serializers, edge cases",{"type":41,"tag":454,"props":688,"children":689},{},[690,695],{"type":41,"tag":458,"props":691,"children":692},{},[693],{"type":47,"value":694},"error-handling.md",{"type":47,"value":696}," - Error types, retry strategies, timeout handling, debugging tips",{"type":41,"tag":454,"props":698,"children":699},{},[700,705],{"type":41,"tag":458,"props":701,"children":702},{},[703],{"type":47,"value":704},"redis-replicas.md",{"type":47,"value":706}," - Global database setup, read replicas, read-your-writes consistency",{"type":41,"tag":112,"props":708,"children":710},{"id":709},"search-skillssearch",[711],{"type":47,"value":712},"Search (skills\u002Fsearch\u002F)",{"type":41,"tag":50,"props":714,"children":715},{},[716],{"type":47,"value":717},"Full-text search, filtering, and aggregation extension for Redis:",{"type":41,"tag":450,"props":719,"children":720},{},[721,731,741,751,761,771],{"type":41,"tag":454,"props":722,"children":723},{},[724,729],{"type":41,"tag":458,"props":725,"children":726},{},[727],{"type":47,"value":728},"overview.md",{"type":47,"value":730}," - Schema definition, field types, pitfalls, package overview",{"type":41,"tag":454,"props":732,"children":733},{},[734,739],{"type":41,"tag":458,"props":735,"children":736},{},[737],{"type":47,"value":738},"commands\u002Fquerying.md",{"type":47,"value":740}," - Query and count with filters, pagination, sorting, highlighting",{"type":41,"tag":454,"props":742,"children":743},{},[744,749],{"type":41,"tag":458,"props":745,"children":746},{},[747],{"type":47,"value":748},"commands\u002Faggregating.md",{"type":47,"value":750}," - Metric aggregations ($avg, $sum, $stats), bucket aggregations ($terms, $range, $histogram, $facet)",{"type":41,"tag":454,"props":752,"children":753},{},[754,759],{"type":41,"tag":458,"props":755,"children":756},{},[757],{"type":47,"value":758},"commands\u002Findex-management.md",{"type":47,"value":760}," - Create, describe, drop indexes, waitIndexing",{"type":41,"tag":454,"props":762,"children":763},{},[764,769],{"type":41,"tag":458,"props":765,"children":766},{},[767],{"type":47,"value":768},"commands\u002Faliases.md",{"type":47,"value":770}," - Index aliases for zero-downtime reindexing",{"type":41,"tag":454,"props":772,"children":773},{},[774,779],{"type":41,"tag":458,"props":775,"children":776},{},[777],{"type":47,"value":778},"adapters.md",{"type":47,"value":780}," - Using search with node-redis and ioredis via @upstash\u002Fsearch-redis and @upstash\u002Fsearch-ioredis",{"type":41,"tag":112,"props":782,"children":784},{"id":783},"migrations-skillsmigrations",[785],{"type":47,"value":786},"Migrations (skills\u002Fmigrations\u002F)",{"type":41,"tag":50,"props":788,"children":789},{},[790],{"type":47,"value":791},"Migration guides from other libraries:",{"type":41,"tag":450,"props":793,"children":794},{},[795,805],{"type":41,"tag":454,"props":796,"children":797},{},[798,803],{"type":41,"tag":458,"props":799,"children":800},{},[801],{"type":47,"value":802},"from-ioredis.md",{"type":47,"value":804}," - Migration from ioredis, key differences, serialization changes",{"type":41,"tag":454,"props":806,"children":807},{},[808,813],{"type":41,"tag":458,"props":809,"children":810},{},[811],{"type":47,"value":812},"from-redis-node.md",{"type":47,"value":814}," - Migration from node-redis, API differences",{"type":41,"tag":65,"props":816,"children":818},{"id":817},"common-mistakes-especially-for-llms",[819],{"type":47,"value":820},"Common Mistakes (Especially for LLMs)",{"type":41,"tag":112,"props":822,"children":824},{"id":823},"mistake-1-treating-everything-as-strings",[825],{"type":47,"value":826},"❌ Mistake 1: Treating Everything as Strings",{"type":41,"tag":72,"props":828,"children":830},{"className":120,"code":829,"language":122,"meta":77,"style":77},"\u002F\u002F ❌ WRONG - Don't do this with @upstash\u002Fredis\nawait redis.set(\"count\", \"42\"); \u002F\u002F Stored as string \"42\"\nconst count = await redis.get(\"count\");\nconst incremented = parseInt(count) + 1; \u002F\u002F Manual parsing needed\n\n\u002F\u002F ✅ CORRECT - Let the SDK handle it\nawait redis.set(\"count\", 42); \u002F\u002F Stored as number\nconst count = await redis.get(\"count\");\nconst incremented = count + 1; \u002F\u002F Just use it\n",[831],{"type":41,"tag":56,"props":832,"children":833},{"__ignoreMap":77},[834,842,913,971,1017,1024,1032,1089,1144],{"type":41,"tag":83,"props":835,"children":836},{"class":85,"line":86},[837],{"type":41,"tag":83,"props":838,"children":839},{"style":193},[840],{"type":47,"value":841},"\u002F\u002F ❌ WRONG - Don't do this with @upstash\u002Fredis\n",{"type":41,"tag":83,"props":843,"children":844},{"class":85,"line":179},[845,850,855,859,864,868,872,877,881,886,890,895,899,903,908],{"type":41,"tag":83,"props":846,"children":847},{"style":132},[848],{"type":47,"value":849},"await",{"type":41,"tag":83,"props":851,"children":852},{"style":144},[853],{"type":47,"value":854}," redis",{"type":41,"tag":83,"props":856,"children":857},{"style":138},[858],{"type":47,"value":359},{"type":41,"tag":83,"props":860,"children":861},{"style":224},[862],{"type":47,"value":863},"set",{"type":41,"tag":83,"props":865,"children":866},{"style":144},[867],{"type":47,"value":231},{"type":41,"tag":83,"props":869,"children":870},{"style":138},[871],{"type":47,"value":171},{"type":41,"tag":83,"props":873,"children":874},{"style":96},[875],{"type":47,"value":876},"count",{"type":41,"tag":83,"props":878,"children":879},{"style":138},[880],{"type":47,"value":171},{"type":41,"tag":83,"props":882,"children":883},{"style":138},[884],{"type":47,"value":885},",",{"type":41,"tag":83,"props":887,"children":888},{"style":138},[889],{"type":47,"value":162},{"type":41,"tag":83,"props":891,"children":892},{"style":96},[893],{"type":47,"value":894},"42",{"type":41,"tag":83,"props":896,"children":897},{"style":138},[898],{"type":47,"value":171},{"type":41,"tag":83,"props":900,"children":901},{"style":144},[902],{"type":47,"value":313},{"type":41,"tag":83,"props":904,"children":905},{"style":138},[906],{"type":47,"value":907},";",{"type":41,"tag":83,"props":909,"children":910},{"style":193},[911],{"type":47,"value":912}," \u002F\u002F Stored as string \"42\"\n",{"type":41,"tag":83,"props":914,"children":915},{"class":85,"line":189},[916,920,925,929,934,938,942,947,951,955,959,963,967],{"type":41,"tag":83,"props":917,"children":918},{"style":203},[919],{"type":47,"value":206},{"type":41,"tag":83,"props":921,"children":922},{"style":144},[923],{"type":47,"value":924}," count ",{"type":41,"tag":83,"props":926,"children":927},{"style":138},[928],{"type":47,"value":216},{"type":41,"tag":83,"props":930,"children":931},{"style":132},[932],{"type":47,"value":933}," await",{"type":41,"tag":83,"props":935,"children":936},{"style":144},[937],{"type":47,"value":854},{"type":41,"tag":83,"props":939,"children":940},{"style":138},[941],{"type":47,"value":359},{"type":41,"tag":83,"props":943,"children":944},{"style":224},[945],{"type":47,"value":946},"get",{"type":41,"tag":83,"props":948,"children":949},{"style":144},[950],{"type":47,"value":231},{"type":41,"tag":83,"props":952,"children":953},{"style":138},[954],{"type":47,"value":171},{"type":41,"tag":83,"props":956,"children":957},{"style":96},[958],{"type":47,"value":876},{"type":41,"tag":83,"props":960,"children":961},{"style":138},[962],{"type":47,"value":171},{"type":41,"tag":83,"props":964,"children":965},{"style":144},[966],{"type":47,"value":313},{"type":41,"tag":83,"props":968,"children":969},{"style":138},[970],{"type":47,"value":176},{"type":41,"tag":83,"props":972,"children":973},{"class":85,"line":199},[974,978,983,987,992,997,1002,1008,1012],{"type":41,"tag":83,"props":975,"children":976},{"style":203},[977],{"type":47,"value":206},{"type":41,"tag":83,"props":979,"children":980},{"style":144},[981],{"type":47,"value":982}," incremented ",{"type":41,"tag":83,"props":984,"children":985},{"style":138},[986],{"type":47,"value":216},{"type":41,"tag":83,"props":988,"children":989},{"style":224},[990],{"type":47,"value":991}," parseInt",{"type":41,"tag":83,"props":993,"children":994},{"style":144},[995],{"type":47,"value":996},"(count) ",{"type":41,"tag":83,"props":998,"children":999},{"style":138},[1000],{"type":47,"value":1001},"+",{"type":41,"tag":83,"props":1003,"children":1005},{"style":1004},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1006],{"type":47,"value":1007}," 1",{"type":41,"tag":83,"props":1009,"children":1010},{"style":138},[1011],{"type":47,"value":907},{"type":41,"tag":83,"props":1013,"children":1014},{"style":193},[1015],{"type":47,"value":1016}," \u002F\u002F Manual parsing needed\n",{"type":41,"tag":83,"props":1018,"children":1019},{"class":85,"line":239},[1020],{"type":41,"tag":83,"props":1021,"children":1022},{"emptyLinePlaceholder":183},[1023],{"type":47,"value":186},{"type":41,"tag":83,"props":1025,"children":1026},{"class":85,"line":272},[1027],{"type":41,"tag":83,"props":1028,"children":1029},{"style":193},[1030],{"type":47,"value":1031},"\u002F\u002F ✅ CORRECT - Let the SDK handle it\n",{"type":41,"tag":83,"props":1033,"children":1034},{"class":85,"line":302},[1035,1039,1043,1047,1051,1055,1059,1063,1067,1071,1076,1080,1084],{"type":41,"tag":83,"props":1036,"children":1037},{"style":132},[1038],{"type":47,"value":849},{"type":41,"tag":83,"props":1040,"children":1041},{"style":144},[1042],{"type":47,"value":854},{"type":41,"tag":83,"props":1044,"children":1045},{"style":138},[1046],{"type":47,"value":359},{"type":41,"tag":83,"props":1048,"children":1049},{"style":224},[1050],{"type":47,"value":863},{"type":41,"tag":83,"props":1052,"children":1053},{"style":144},[1054],{"type":47,"value":231},{"type":41,"tag":83,"props":1056,"children":1057},{"style":138},[1058],{"type":47,"value":171},{"type":41,"tag":83,"props":1060,"children":1061},{"style":96},[1062],{"type":47,"value":876},{"type":41,"tag":83,"props":1064,"children":1065},{"style":138},[1066],{"type":47,"value":171},{"type":41,"tag":83,"props":1068,"children":1069},{"style":138},[1070],{"type":47,"value":885},{"type":41,"tag":83,"props":1072,"children":1073},{"style":1004},[1074],{"type":47,"value":1075}," 42",{"type":41,"tag":83,"props":1077,"children":1078},{"style":144},[1079],{"type":47,"value":313},{"type":41,"tag":83,"props":1081,"children":1082},{"style":138},[1083],{"type":47,"value":907},{"type":41,"tag":83,"props":1085,"children":1086},{"style":193},[1087],{"type":47,"value":1088}," \u002F\u002F Stored as number\n",{"type":41,"tag":83,"props":1090,"children":1091},{"class":85,"line":320},[1092,1096,1100,1104,1108,1112,1116,1120,1124,1128,1132,1136,1140],{"type":41,"tag":83,"props":1093,"children":1094},{"style":203},[1095],{"type":47,"value":206},{"type":41,"tag":83,"props":1097,"children":1098},{"style":144},[1099],{"type":47,"value":924},{"type":41,"tag":83,"props":1101,"children":1102},{"style":138},[1103],{"type":47,"value":216},{"type":41,"tag":83,"props":1105,"children":1106},{"style":132},[1107],{"type":47,"value":933},{"type":41,"tag":83,"props":1109,"children":1110},{"style":144},[1111],{"type":47,"value":854},{"type":41,"tag":83,"props":1113,"children":1114},{"style":138},[1115],{"type":47,"value":359},{"type":41,"tag":83,"props":1117,"children":1118},{"style":224},[1119],{"type":47,"value":946},{"type":41,"tag":83,"props":1121,"children":1122},{"style":144},[1123],{"type":47,"value":231},{"type":41,"tag":83,"props":1125,"children":1126},{"style":138},[1127],{"type":47,"value":171},{"type":41,"tag":83,"props":1129,"children":1130},{"style":96},[1131],{"type":47,"value":876},{"type":41,"tag":83,"props":1133,"children":1134},{"style":138},[1135],{"type":47,"value":171},{"type":41,"tag":83,"props":1137,"children":1138},{"style":144},[1139],{"type":47,"value":313},{"type":41,"tag":83,"props":1141,"children":1142},{"style":138},[1143],{"type":47,"value":176},{"type":41,"tag":83,"props":1145,"children":1146},{"class":85,"line":328},[1147,1151,1155,1159,1163,1167,1171,1175],{"type":41,"tag":83,"props":1148,"children":1149},{"style":203},[1150],{"type":47,"value":206},{"type":41,"tag":83,"props":1152,"children":1153},{"style":144},[1154],{"type":47,"value":982},{"type":41,"tag":83,"props":1156,"children":1157},{"style":138},[1158],{"type":47,"value":216},{"type":41,"tag":83,"props":1160,"children":1161},{"style":144},[1162],{"type":47,"value":924},{"type":41,"tag":83,"props":1164,"children":1165},{"style":138},[1166],{"type":47,"value":1001},{"type":41,"tag":83,"props":1168,"children":1169},{"style":1004},[1170],{"type":47,"value":1007},{"type":41,"tag":83,"props":1172,"children":1173},{"style":138},[1174],{"type":47,"value":907},{"type":41,"tag":83,"props":1176,"children":1177},{"style":193},[1178],{"type":47,"value":1179}," \u002F\u002F Just use it\n",{"type":41,"tag":112,"props":1181,"children":1183},{"id":1182},"mistake-2-manual-json-serialization",[1184],{"type":47,"value":1185},"❌ Mistake 2: Manual JSON Serialization",{"type":41,"tag":72,"props":1187,"children":1189},{"className":120,"code":1188,"language":122,"meta":77,"style":77},"\u002F\u002F ❌ WRONG - Unnecessary with @upstash\u002Fredis\nawait redis.set(\"user\", JSON.stringify({ name: \"Alice\" }));\nconst user = JSON.parse(await redis.get(\"user\"));\n\n\u002F\u002F ✅ CORRECT - Automatic handling\nawait redis.set(\"user\", { name: \"Alice\" });\nconst user = await redis.get(\"user\");\n",[1190],{"type":41,"tag":56,"props":1191,"children":1192},{"__ignoreMap":77},[1193,1201,1299,1372,1379,1387,1462],{"type":41,"tag":83,"props":1194,"children":1195},{"class":85,"line":86},[1196],{"type":41,"tag":83,"props":1197,"children":1198},{"style":193},[1199],{"type":47,"value":1200},"\u002F\u002F ❌ WRONG - Unnecessary with @upstash\u002Fredis\n",{"type":41,"tag":83,"props":1202,"children":1203},{"class":85,"line":179},[1204,1208,1212,1216,1220,1224,1228,1233,1237,1241,1246,1250,1255,1259,1264,1269,1273,1277,1282,1286,1290,1295],{"type":41,"tag":83,"props":1205,"children":1206},{"style":132},[1207],{"type":47,"value":849},{"type":41,"tag":83,"props":1209,"children":1210},{"style":144},[1211],{"type":47,"value":854},{"type":41,"tag":83,"props":1213,"children":1214},{"style":138},[1215],{"type":47,"value":359},{"type":41,"tag":83,"props":1217,"children":1218},{"style":224},[1219],{"type":47,"value":863},{"type":41,"tag":83,"props":1221,"children":1222},{"style":144},[1223],{"type":47,"value":231},{"type":41,"tag":83,"props":1225,"children":1226},{"style":138},[1227],{"type":47,"value":171},{"type":41,"tag":83,"props":1229,"children":1230},{"style":96},[1231],{"type":47,"value":1232},"user",{"type":41,"tag":83,"props":1234,"children":1235},{"style":138},[1236],{"type":47,"value":171},{"type":41,"tag":83,"props":1238,"children":1239},{"style":138},[1240],{"type":47,"value":885},{"type":41,"tag":83,"props":1242,"children":1243},{"style":144},[1244],{"type":47,"value":1245}," JSON",{"type":41,"tag":83,"props":1247,"children":1248},{"style":138},[1249],{"type":47,"value":359},{"type":41,"tag":83,"props":1251,"children":1252},{"style":224},[1253],{"type":47,"value":1254},"stringify",{"type":41,"tag":83,"props":1256,"children":1257},{"style":144},[1258],{"type":47,"value":231},{"type":41,"tag":83,"props":1260,"children":1261},{"style":138},[1262],{"type":47,"value":1263},"{",{"type":41,"tag":83,"props":1265,"children":1266},{"style":243},[1267],{"type":47,"value":1268}," name",{"type":41,"tag":83,"props":1270,"children":1271},{"style":138},[1272],{"type":47,"value":251},{"type":41,"tag":83,"props":1274,"children":1275},{"style":138},[1276],{"type":47,"value":162},{"type":41,"tag":83,"props":1278,"children":1279},{"style":96},[1280],{"type":47,"value":1281},"Alice",{"type":41,"tag":83,"props":1283,"children":1284},{"style":138},[1285],{"type":47,"value":171},{"type":41,"tag":83,"props":1287,"children":1288},{"style":138},[1289],{"type":47,"value":152},{"type":41,"tag":83,"props":1291,"children":1292},{"style":144},[1293],{"type":47,"value":1294},"))",{"type":41,"tag":83,"props":1296,"children":1297},{"style":138},[1298],{"type":47,"value":176},{"type":41,"tag":83,"props":1300,"children":1301},{"class":85,"line":189},[1302,1306,1311,1315,1319,1323,1328,1332,1336,1340,1344,1348,1352,1356,1360,1364,1368],{"type":41,"tag":83,"props":1303,"children":1304},{"style":203},[1305],{"type":47,"value":206},{"type":41,"tag":83,"props":1307,"children":1308},{"style":144},[1309],{"type":47,"value":1310}," user ",{"type":41,"tag":83,"props":1312,"children":1313},{"style":138},[1314],{"type":47,"value":216},{"type":41,"tag":83,"props":1316,"children":1317},{"style":144},[1318],{"type":47,"value":1245},{"type":41,"tag":83,"props":1320,"children":1321},{"style":138},[1322],{"type":47,"value":359},{"type":41,"tag":83,"props":1324,"children":1325},{"style":224},[1326],{"type":47,"value":1327},"parse",{"type":41,"tag":83,"props":1329,"children":1330},{"style":144},[1331],{"type":47,"value":231},{"type":41,"tag":83,"props":1333,"children":1334},{"style":132},[1335],{"type":47,"value":849},{"type":41,"tag":83,"props":1337,"children":1338},{"style":144},[1339],{"type":47,"value":854},{"type":41,"tag":83,"props":1341,"children":1342},{"style":138},[1343],{"type":47,"value":359},{"type":41,"tag":83,"props":1345,"children":1346},{"style":224},[1347],{"type":47,"value":946},{"type":41,"tag":83,"props":1349,"children":1350},{"style":144},[1351],{"type":47,"value":231},{"type":41,"tag":83,"props":1353,"children":1354},{"style":138},[1355],{"type":47,"value":171},{"type":41,"tag":83,"props":1357,"children":1358},{"style":96},[1359],{"type":47,"value":1232},{"type":41,"tag":83,"props":1361,"children":1362},{"style":138},[1363],{"type":47,"value":171},{"type":41,"tag":83,"props":1365,"children":1366},{"style":144},[1367],{"type":47,"value":1294},{"type":41,"tag":83,"props":1369,"children":1370},{"style":138},[1371],{"type":47,"value":176},{"type":41,"tag":83,"props":1373,"children":1374},{"class":85,"line":199},[1375],{"type":41,"tag":83,"props":1376,"children":1377},{"emptyLinePlaceholder":183},[1378],{"type":47,"value":186},{"type":41,"tag":83,"props":1380,"children":1381},{"class":85,"line":239},[1382],{"type":41,"tag":83,"props":1383,"children":1384},{"style":193},[1385],{"type":47,"value":1386},"\u002F\u002F ✅ CORRECT - Automatic handling\n",{"type":41,"tag":83,"props":1388,"children":1389},{"class":85,"line":272},[1390,1394,1398,1402,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1454,1458],{"type":41,"tag":83,"props":1391,"children":1392},{"style":132},[1393],{"type":47,"value":849},{"type":41,"tag":83,"props":1395,"children":1396},{"style":144},[1397],{"type":47,"value":854},{"type":41,"tag":83,"props":1399,"children":1400},{"style":138},[1401],{"type":47,"value":359},{"type":41,"tag":83,"props":1403,"children":1404},{"style":224},[1405],{"type":47,"value":863},{"type":41,"tag":83,"props":1407,"children":1408},{"style":144},[1409],{"type":47,"value":231},{"type":41,"tag":83,"props":1411,"children":1412},{"style":138},[1413],{"type":47,"value":171},{"type":41,"tag":83,"props":1415,"children":1416},{"style":96},[1417],{"type":47,"value":1232},{"type":41,"tag":83,"props":1419,"children":1420},{"style":138},[1421],{"type":47,"value":171},{"type":41,"tag":83,"props":1423,"children":1424},{"style":138},[1425],{"type":47,"value":885},{"type":41,"tag":83,"props":1427,"children":1428},{"style":138},[1429],{"type":47,"value":141},{"type":41,"tag":83,"props":1431,"children":1432},{"style":243},[1433],{"type":47,"value":1268},{"type":41,"tag":83,"props":1435,"children":1436},{"style":138},[1437],{"type":47,"value":251},{"type":41,"tag":83,"props":1439,"children":1440},{"style":138},[1441],{"type":47,"value":162},{"type":41,"tag":83,"props":1443,"children":1444},{"style":96},[1445],{"type":47,"value":1281},{"type":41,"tag":83,"props":1447,"children":1448},{"style":138},[1449],{"type":47,"value":171},{"type":41,"tag":83,"props":1451,"children":1452},{"style":138},[1453],{"type":47,"value":152},{"type":41,"tag":83,"props":1455,"children":1456},{"style":144},[1457],{"type":47,"value":313},{"type":41,"tag":83,"props":1459,"children":1460},{"style":138},[1461],{"type":47,"value":176},{"type":41,"tag":83,"props":1463,"children":1464},{"class":85,"line":302},[1465,1469,1473,1477,1481,1485,1489,1493,1497,1501,1505,1509,1513],{"type":41,"tag":83,"props":1466,"children":1467},{"style":203},[1468],{"type":47,"value":206},{"type":41,"tag":83,"props":1470,"children":1471},{"style":144},[1472],{"type":47,"value":1310},{"type":41,"tag":83,"props":1474,"children":1475},{"style":138},[1476],{"type":47,"value":216},{"type":41,"tag":83,"props":1478,"children":1479},{"style":132},[1480],{"type":47,"value":933},{"type":41,"tag":83,"props":1482,"children":1483},{"style":144},[1484],{"type":47,"value":854},{"type":41,"tag":83,"props":1486,"children":1487},{"style":138},[1488],{"type":47,"value":359},{"type":41,"tag":83,"props":1490,"children":1491},{"style":224},[1492],{"type":47,"value":946},{"type":41,"tag":83,"props":1494,"children":1495},{"style":144},[1496],{"type":47,"value":231},{"type":41,"tag":83,"props":1498,"children":1499},{"style":138},[1500],{"type":47,"value":171},{"type":41,"tag":83,"props":1502,"children":1503},{"style":96},[1504],{"type":47,"value":1232},{"type":41,"tag":83,"props":1506,"children":1507},{"style":138},[1508],{"type":47,"value":171},{"type":41,"tag":83,"props":1510,"children":1511},{"style":144},[1512],{"type":47,"value":313},{"type":41,"tag":83,"props":1514,"children":1515},{"style":138},[1516],{"type":47,"value":176},{"type":41,"tag":65,"props":1518,"children":1520},{"id":1519},"quick-command-reference",[1521],{"type":47,"value":1522},"Quick Command Reference",{"type":41,"tag":72,"props":1524,"children":1526},{"className":120,"code":1525,"language":122,"meta":77,"style":77},"\u002F\u002F Strings\nawait redis.set(\"key\", \"value\");\nawait redis.get(\"key\");\nawait redis.incr(\"counter\");\nawait redis.decr(\"counter\");\n\n\u002F\u002F Hashes\nawait redis.hset(\"user:1\", { name: \"Alice\", age: 30 });\nawait redis.hget(\"user:1\", \"name\");\nawait redis.hgetall(\"user:1\");\n\n\u002F\u002F Lists\nawait redis.lpush(\"tasks\", \"task1\", \"task2\");\nawait redis.rpush(\"tasks\", \"task3\");\nawait redis.lrange(\"tasks\", 0, -1);\n\n\u002F\u002F Sets\nawait redis.sadd(\"tags\", \"javascript\", \"redis\");\nawait redis.smembers(\"tags\");\n\n\u002F\u002F Sorted Sets\nawait redis.zadd(\"leaderboard\", { score: 100, member: \"player1\" });\nawait redis.zrange(\"leaderboard\", 0, -1);\n\n\u002F\u002F JSON\nawait redis.json.set(\"user:1\", \"$\", { name: \"Alice\", address: { city: \"NYC\" } });\nawait redis.json.get(\"user:1\");\n\n\u002F\u002F Expiration\nawait redis.setex(\"session\", 3600, { userId: \"123\" });\nawait redis.expire(\"key\", 60);\nawait redis.ttl(\"key\");\n",[1527],{"type":41,"tag":56,"props":1528,"children":1529},{"__ignoreMap":77},[1530,1538,1599,1642,1687,1731,1738,1746,1841,1902,1946,1954,1963,2043,2105,2173,2181,2190,2269,2314,2322,2331,2429,2494,2502,2511,2656,2708,2716,2725,2814,2868],{"type":41,"tag":83,"props":1531,"children":1532},{"class":85,"line":86},[1533],{"type":41,"tag":83,"props":1534,"children":1535},{"style":193},[1536],{"type":47,"value":1537},"\u002F\u002F Strings\n",{"type":41,"tag":83,"props":1539,"children":1540},{"class":85,"line":179},[1541,1545,1549,1553,1557,1561,1565,1570,1574,1578,1582,1587,1591,1595],{"type":41,"tag":83,"props":1542,"children":1543},{"style":132},[1544],{"type":47,"value":849},{"type":41,"tag":83,"props":1546,"children":1547},{"style":144},[1548],{"type":47,"value":854},{"type":41,"tag":83,"props":1550,"children":1551},{"style":138},[1552],{"type":47,"value":359},{"type":41,"tag":83,"props":1554,"children":1555},{"style":224},[1556],{"type":47,"value":863},{"type":41,"tag":83,"props":1558,"children":1559},{"style":144},[1560],{"type":47,"value":231},{"type":41,"tag":83,"props":1562,"children":1563},{"style":138},[1564],{"type":47,"value":171},{"type":41,"tag":83,"props":1566,"children":1567},{"style":96},[1568],{"type":47,"value":1569},"key",{"type":41,"tag":83,"props":1571,"children":1572},{"style":138},[1573],{"type":47,"value":171},{"type":41,"tag":83,"props":1575,"children":1576},{"style":138},[1577],{"type":47,"value":885},{"type":41,"tag":83,"props":1579,"children":1580},{"style":138},[1581],{"type":47,"value":162},{"type":41,"tag":83,"props":1583,"children":1584},{"style":96},[1585],{"type":47,"value":1586},"value",{"type":41,"tag":83,"props":1588,"children":1589},{"style":138},[1590],{"type":47,"value":171},{"type":41,"tag":83,"props":1592,"children":1593},{"style":144},[1594],{"type":47,"value":313},{"type":41,"tag":83,"props":1596,"children":1597},{"style":138},[1598],{"type":47,"value":176},{"type":41,"tag":83,"props":1600,"children":1601},{"class":85,"line":189},[1602,1606,1610,1614,1618,1622,1626,1630,1634,1638],{"type":41,"tag":83,"props":1603,"children":1604},{"style":132},[1605],{"type":47,"value":849},{"type":41,"tag":83,"props":1607,"children":1608},{"style":144},[1609],{"type":47,"value":854},{"type":41,"tag":83,"props":1611,"children":1612},{"style":138},[1613],{"type":47,"value":359},{"type":41,"tag":83,"props":1615,"children":1616},{"style":224},[1617],{"type":47,"value":946},{"type":41,"tag":83,"props":1619,"children":1620},{"style":144},[1621],{"type":47,"value":231},{"type":41,"tag":83,"props":1623,"children":1624},{"style":138},[1625],{"type":47,"value":171},{"type":41,"tag":83,"props":1627,"children":1628},{"style":96},[1629],{"type":47,"value":1569},{"type":41,"tag":83,"props":1631,"children":1632},{"style":138},[1633],{"type":47,"value":171},{"type":41,"tag":83,"props":1635,"children":1636},{"style":144},[1637],{"type":47,"value":313},{"type":41,"tag":83,"props":1639,"children":1640},{"style":138},[1641],{"type":47,"value":176},{"type":41,"tag":83,"props":1643,"children":1644},{"class":85,"line":199},[1645,1649,1653,1657,1662,1666,1670,1675,1679,1683],{"type":41,"tag":83,"props":1646,"children":1647},{"style":132},[1648],{"type":47,"value":849},{"type":41,"tag":83,"props":1650,"children":1651},{"style":144},[1652],{"type":47,"value":854},{"type":41,"tag":83,"props":1654,"children":1655},{"style":138},[1656],{"type":47,"value":359},{"type":41,"tag":83,"props":1658,"children":1659},{"style":224},[1660],{"type":47,"value":1661},"incr",{"type":41,"tag":83,"props":1663,"children":1664},{"style":144},[1665],{"type":47,"value":231},{"type":41,"tag":83,"props":1667,"children":1668},{"style":138},[1669],{"type":47,"value":171},{"type":41,"tag":83,"props":1671,"children":1672},{"style":96},[1673],{"type":47,"value":1674},"counter",{"type":41,"tag":83,"props":1676,"children":1677},{"style":138},[1678],{"type":47,"value":171},{"type":41,"tag":83,"props":1680,"children":1681},{"style":144},[1682],{"type":47,"value":313},{"type":41,"tag":83,"props":1684,"children":1685},{"style":138},[1686],{"type":47,"value":176},{"type":41,"tag":83,"props":1688,"children":1689},{"class":85,"line":239},[1690,1694,1698,1702,1707,1711,1715,1719,1723,1727],{"type":41,"tag":83,"props":1691,"children":1692},{"style":132},[1693],{"type":47,"value":849},{"type":41,"tag":83,"props":1695,"children":1696},{"style":144},[1697],{"type":47,"value":854},{"type":41,"tag":83,"props":1699,"children":1700},{"style":138},[1701],{"type":47,"value":359},{"type":41,"tag":83,"props":1703,"children":1704},{"style":224},[1705],{"type":47,"value":1706},"decr",{"type":41,"tag":83,"props":1708,"children":1709},{"style":144},[1710],{"type":47,"value":231},{"type":41,"tag":83,"props":1712,"children":1713},{"style":138},[1714],{"type":47,"value":171},{"type":41,"tag":83,"props":1716,"children":1717},{"style":96},[1718],{"type":47,"value":1674},{"type":41,"tag":83,"props":1720,"children":1721},{"style":138},[1722],{"type":47,"value":171},{"type":41,"tag":83,"props":1724,"children":1725},{"style":144},[1726],{"type":47,"value":313},{"type":41,"tag":83,"props":1728,"children":1729},{"style":138},[1730],{"type":47,"value":176},{"type":41,"tag":83,"props":1732,"children":1733},{"class":85,"line":272},[1734],{"type":41,"tag":83,"props":1735,"children":1736},{"emptyLinePlaceholder":183},[1737],{"type":47,"value":186},{"type":41,"tag":83,"props":1739,"children":1740},{"class":85,"line":302},[1741],{"type":41,"tag":83,"props":1742,"children":1743},{"style":193},[1744],{"type":47,"value":1745},"\u002F\u002F Hashes\n",{"type":41,"tag":83,"props":1747,"children":1748},{"class":85,"line":320},[1749,1753,1757,1761,1766,1770,1774,1779,1783,1787,1791,1795,1799,1803,1807,1811,1815,1820,1824,1829,1833,1837],{"type":41,"tag":83,"props":1750,"children":1751},{"style":132},[1752],{"type":47,"value":849},{"type":41,"tag":83,"props":1754,"children":1755},{"style":144},[1756],{"type":47,"value":854},{"type":41,"tag":83,"props":1758,"children":1759},{"style":138},[1760],{"type":47,"value":359},{"type":41,"tag":83,"props":1762,"children":1763},{"style":224},[1764],{"type":47,"value":1765},"hset",{"type":41,"tag":83,"props":1767,"children":1768},{"style":144},[1769],{"type":47,"value":231},{"type":41,"tag":83,"props":1771,"children":1772},{"style":138},[1773],{"type":47,"value":171},{"type":41,"tag":83,"props":1775,"children":1776},{"style":96},[1777],{"type":47,"value":1778},"user:1",{"type":41,"tag":83,"props":1780,"children":1781},{"style":138},[1782],{"type":47,"value":171},{"type":41,"tag":83,"props":1784,"children":1785},{"style":138},[1786],{"type":47,"value":885},{"type":41,"tag":83,"props":1788,"children":1789},{"style":138},[1790],{"type":47,"value":141},{"type":41,"tag":83,"props":1792,"children":1793},{"style":243},[1794],{"type":47,"value":1268},{"type":41,"tag":83,"props":1796,"children":1797},{"style":138},[1798],{"type":47,"value":251},{"type":41,"tag":83,"props":1800,"children":1801},{"style":138},[1802],{"type":47,"value":162},{"type":41,"tag":83,"props":1804,"children":1805},{"style":96},[1806],{"type":47,"value":1281},{"type":41,"tag":83,"props":1808,"children":1809},{"style":138},[1810],{"type":47,"value":171},{"type":41,"tag":83,"props":1812,"children":1813},{"style":138},[1814],{"type":47,"value":885},{"type":41,"tag":83,"props":1816,"children":1817},{"style":243},[1818],{"type":47,"value":1819}," age",{"type":41,"tag":83,"props":1821,"children":1822},{"style":138},[1823],{"type":47,"value":251},{"type":41,"tag":83,"props":1825,"children":1826},{"style":1004},[1827],{"type":47,"value":1828}," 30",{"type":41,"tag":83,"props":1830,"children":1831},{"style":138},[1832],{"type":47,"value":152},{"type":41,"tag":83,"props":1834,"children":1835},{"style":144},[1836],{"type":47,"value":313},{"type":41,"tag":83,"props":1838,"children":1839},{"style":138},[1840],{"type":47,"value":176},{"type":41,"tag":83,"props":1842,"children":1843},{"class":85,"line":328},[1844,1848,1852,1856,1861,1865,1869,1873,1877,1881,1885,1890,1894,1898],{"type":41,"tag":83,"props":1845,"children":1846},{"style":132},[1847],{"type":47,"value":849},{"type":41,"tag":83,"props":1849,"children":1850},{"style":144},[1851],{"type":47,"value":854},{"type":41,"tag":83,"props":1853,"children":1854},{"style":138},[1855],{"type":47,"value":359},{"type":41,"tag":83,"props":1857,"children":1858},{"style":224},[1859],{"type":47,"value":1860},"hget",{"type":41,"tag":83,"props":1862,"children":1863},{"style":144},[1864],{"type":47,"value":231},{"type":41,"tag":83,"props":1866,"children":1867},{"style":138},[1868],{"type":47,"value":171},{"type":41,"tag":83,"props":1870,"children":1871},{"style":96},[1872],{"type":47,"value":1778},{"type":41,"tag":83,"props":1874,"children":1875},{"style":138},[1876],{"type":47,"value":171},{"type":41,"tag":83,"props":1878,"children":1879},{"style":138},[1880],{"type":47,"value":885},{"type":41,"tag":83,"props":1882,"children":1883},{"style":138},[1884],{"type":47,"value":162},{"type":41,"tag":83,"props":1886,"children":1887},{"style":96},[1888],{"type":47,"value":1889},"name",{"type":41,"tag":83,"props":1891,"children":1892},{"style":138},[1893],{"type":47,"value":171},{"type":41,"tag":83,"props":1895,"children":1896},{"style":144},[1897],{"type":47,"value":313},{"type":41,"tag":83,"props":1899,"children":1900},{"style":138},[1901],{"type":47,"value":176},{"type":41,"tag":83,"props":1903,"children":1904},{"class":85,"line":337},[1905,1909,1913,1917,1922,1926,1930,1934,1938,1942],{"type":41,"tag":83,"props":1906,"children":1907},{"style":132},[1908],{"type":47,"value":849},{"type":41,"tag":83,"props":1910,"children":1911},{"style":144},[1912],{"type":47,"value":854},{"type":41,"tag":83,"props":1914,"children":1915},{"style":138},[1916],{"type":47,"value":359},{"type":41,"tag":83,"props":1918,"children":1919},{"style":224},[1920],{"type":47,"value":1921},"hgetall",{"type":41,"tag":83,"props":1923,"children":1924},{"style":144},[1925],{"type":47,"value":231},{"type":41,"tag":83,"props":1927,"children":1928},{"style":138},[1929],{"type":47,"value":171},{"type":41,"tag":83,"props":1931,"children":1932},{"style":96},[1933],{"type":47,"value":1778},{"type":41,"tag":83,"props":1935,"children":1936},{"style":138},[1937],{"type":47,"value":171},{"type":41,"tag":83,"props":1939,"children":1940},{"style":144},[1941],{"type":47,"value":313},{"type":41,"tag":83,"props":1943,"children":1944},{"style":138},[1945],{"type":47,"value":176},{"type":41,"tag":83,"props":1947,"children":1949},{"class":85,"line":1948},11,[1950],{"type":41,"tag":83,"props":1951,"children":1952},{"emptyLinePlaceholder":183},[1953],{"type":47,"value":186},{"type":41,"tag":83,"props":1955,"children":1957},{"class":85,"line":1956},12,[1958],{"type":41,"tag":83,"props":1959,"children":1960},{"style":193},[1961],{"type":47,"value":1962},"\u002F\u002F Lists\n",{"type":41,"tag":83,"props":1964,"children":1966},{"class":85,"line":1965},13,[1967,1971,1975,1979,1984,1988,1992,1997,2001,2005,2009,2014,2018,2022,2026,2031,2035,2039],{"type":41,"tag":83,"props":1968,"children":1969},{"style":132},[1970],{"type":47,"value":849},{"type":41,"tag":83,"props":1972,"children":1973},{"style":144},[1974],{"type":47,"value":854},{"type":41,"tag":83,"props":1976,"children":1977},{"style":138},[1978],{"type":47,"value":359},{"type":41,"tag":83,"props":1980,"children":1981},{"style":224},[1982],{"type":47,"value":1983},"lpush",{"type":41,"tag":83,"props":1985,"children":1986},{"style":144},[1987],{"type":47,"value":231},{"type":41,"tag":83,"props":1989,"children":1990},{"style":138},[1991],{"type":47,"value":171},{"type":41,"tag":83,"props":1993,"children":1994},{"style":96},[1995],{"type":47,"value":1996},"tasks",{"type":41,"tag":83,"props":1998,"children":1999},{"style":138},[2000],{"type":47,"value":171},{"type":41,"tag":83,"props":2002,"children":2003},{"style":138},[2004],{"type":47,"value":885},{"type":41,"tag":83,"props":2006,"children":2007},{"style":138},[2008],{"type":47,"value":162},{"type":41,"tag":83,"props":2010,"children":2011},{"style":96},[2012],{"type":47,"value":2013},"task1",{"type":41,"tag":83,"props":2015,"children":2016},{"style":138},[2017],{"type":47,"value":171},{"type":41,"tag":83,"props":2019,"children":2020},{"style":138},[2021],{"type":47,"value":885},{"type":41,"tag":83,"props":2023,"children":2024},{"style":138},[2025],{"type":47,"value":162},{"type":41,"tag":83,"props":2027,"children":2028},{"style":96},[2029],{"type":47,"value":2030},"task2",{"type":41,"tag":83,"props":2032,"children":2033},{"style":138},[2034],{"type":47,"value":171},{"type":41,"tag":83,"props":2036,"children":2037},{"style":144},[2038],{"type":47,"value":313},{"type":41,"tag":83,"props":2040,"children":2041},{"style":138},[2042],{"type":47,"value":176},{"type":41,"tag":83,"props":2044,"children":2046},{"class":85,"line":2045},14,[2047,2051,2055,2059,2064,2068,2072,2076,2080,2084,2088,2093,2097,2101],{"type":41,"tag":83,"props":2048,"children":2049},{"style":132},[2050],{"type":47,"value":849},{"type":41,"tag":83,"props":2052,"children":2053},{"style":144},[2054],{"type":47,"value":854},{"type":41,"tag":83,"props":2056,"children":2057},{"style":138},[2058],{"type":47,"value":359},{"type":41,"tag":83,"props":2060,"children":2061},{"style":224},[2062],{"type":47,"value":2063},"rpush",{"type":41,"tag":83,"props":2065,"children":2066},{"style":144},[2067],{"type":47,"value":231},{"type":41,"tag":83,"props":2069,"children":2070},{"style":138},[2071],{"type":47,"value":171},{"type":41,"tag":83,"props":2073,"children":2074},{"style":96},[2075],{"type":47,"value":1996},{"type":41,"tag":83,"props":2077,"children":2078},{"style":138},[2079],{"type":47,"value":171},{"type":41,"tag":83,"props":2081,"children":2082},{"style":138},[2083],{"type":47,"value":885},{"type":41,"tag":83,"props":2085,"children":2086},{"style":138},[2087],{"type":47,"value":162},{"type":41,"tag":83,"props":2089,"children":2090},{"style":96},[2091],{"type":47,"value":2092},"task3",{"type":41,"tag":83,"props":2094,"children":2095},{"style":138},[2096],{"type":47,"value":171},{"type":41,"tag":83,"props":2098,"children":2099},{"style":144},[2100],{"type":47,"value":313},{"type":41,"tag":83,"props":2102,"children":2103},{"style":138},[2104],{"type":47,"value":176},{"type":41,"tag":83,"props":2106,"children":2108},{"class":85,"line":2107},15,[2109,2113,2117,2121,2126,2130,2134,2138,2142,2146,2151,2155,2160,2165,2169],{"type":41,"tag":83,"props":2110,"children":2111},{"style":132},[2112],{"type":47,"value":849},{"type":41,"tag":83,"props":2114,"children":2115},{"style":144},[2116],{"type":47,"value":854},{"type":41,"tag":83,"props":2118,"children":2119},{"style":138},[2120],{"type":47,"value":359},{"type":41,"tag":83,"props":2122,"children":2123},{"style":224},[2124],{"type":47,"value":2125},"lrange",{"type":41,"tag":83,"props":2127,"children":2128},{"style":144},[2129],{"type":47,"value":231},{"type":41,"tag":83,"props":2131,"children":2132},{"style":138},[2133],{"type":47,"value":171},{"type":41,"tag":83,"props":2135,"children":2136},{"style":96},[2137],{"type":47,"value":1996},{"type":41,"tag":83,"props":2139,"children":2140},{"style":138},[2141],{"type":47,"value":171},{"type":41,"tag":83,"props":2143,"children":2144},{"style":138},[2145],{"type":47,"value":885},{"type":41,"tag":83,"props":2147,"children":2148},{"style":1004},[2149],{"type":47,"value":2150}," 0",{"type":41,"tag":83,"props":2152,"children":2153},{"style":138},[2154],{"type":47,"value":885},{"type":41,"tag":83,"props":2156,"children":2157},{"style":138},[2158],{"type":47,"value":2159}," -",{"type":41,"tag":83,"props":2161,"children":2162},{"style":1004},[2163],{"type":47,"value":2164},"1",{"type":41,"tag":83,"props":2166,"children":2167},{"style":144},[2168],{"type":47,"value":313},{"type":41,"tag":83,"props":2170,"children":2171},{"style":138},[2172],{"type":47,"value":176},{"type":41,"tag":83,"props":2174,"children":2176},{"class":85,"line":2175},16,[2177],{"type":41,"tag":83,"props":2178,"children":2179},{"emptyLinePlaceholder":183},[2180],{"type":47,"value":186},{"type":41,"tag":83,"props":2182,"children":2184},{"class":85,"line":2183},17,[2185],{"type":41,"tag":83,"props":2186,"children":2187},{"style":193},[2188],{"type":47,"value":2189},"\u002F\u002F Sets\n",{"type":41,"tag":83,"props":2191,"children":2193},{"class":85,"line":2192},18,[2194,2198,2202,2206,2211,2215,2219,2224,2228,2232,2236,2241,2245,2249,2253,2257,2261,2265],{"type":41,"tag":83,"props":2195,"children":2196},{"style":132},[2197],{"type":47,"value":849},{"type":41,"tag":83,"props":2199,"children":2200},{"style":144},[2201],{"type":47,"value":854},{"type":41,"tag":83,"props":2203,"children":2204},{"style":138},[2205],{"type":47,"value":359},{"type":41,"tag":83,"props":2207,"children":2208},{"style":224},[2209],{"type":47,"value":2210},"sadd",{"type":41,"tag":83,"props":2212,"children":2213},{"style":144},[2214],{"type":47,"value":231},{"type":41,"tag":83,"props":2216,"children":2217},{"style":138},[2218],{"type":47,"value":171},{"type":41,"tag":83,"props":2220,"children":2221},{"style":96},[2222],{"type":47,"value":2223},"tags",{"type":41,"tag":83,"props":2225,"children":2226},{"style":138},[2227],{"type":47,"value":171},{"type":41,"tag":83,"props":2229,"children":2230},{"style":138},[2231],{"type":47,"value":885},{"type":41,"tag":83,"props":2233,"children":2234},{"style":138},[2235],{"type":47,"value":162},{"type":41,"tag":83,"props":2237,"children":2238},{"style":96},[2239],{"type":47,"value":2240},"javascript",{"type":41,"tag":83,"props":2242,"children":2243},{"style":138},[2244],{"type":47,"value":171},{"type":41,"tag":83,"props":2246,"children":2247},{"style":138},[2248],{"type":47,"value":885},{"type":41,"tag":83,"props":2250,"children":2251},{"style":138},[2252],{"type":47,"value":162},{"type":41,"tag":83,"props":2254,"children":2255},{"style":96},[2256],{"type":47,"value":18},{"type":41,"tag":83,"props":2258,"children":2259},{"style":138},[2260],{"type":47,"value":171},{"type":41,"tag":83,"props":2262,"children":2263},{"style":144},[2264],{"type":47,"value":313},{"type":41,"tag":83,"props":2266,"children":2267},{"style":138},[2268],{"type":47,"value":176},{"type":41,"tag":83,"props":2270,"children":2272},{"class":85,"line":2271},19,[2273,2277,2281,2285,2290,2294,2298,2302,2306,2310],{"type":41,"tag":83,"props":2274,"children":2275},{"style":132},[2276],{"type":47,"value":849},{"type":41,"tag":83,"props":2278,"children":2279},{"style":144},[2280],{"type":47,"value":854},{"type":41,"tag":83,"props":2282,"children":2283},{"style":138},[2284],{"type":47,"value":359},{"type":41,"tag":83,"props":2286,"children":2287},{"style":224},[2288],{"type":47,"value":2289},"smembers",{"type":41,"tag":83,"props":2291,"children":2292},{"style":144},[2293],{"type":47,"value":231},{"type":41,"tag":83,"props":2295,"children":2296},{"style":138},[2297],{"type":47,"value":171},{"type":41,"tag":83,"props":2299,"children":2300},{"style":96},[2301],{"type":47,"value":2223},{"type":41,"tag":83,"props":2303,"children":2304},{"style":138},[2305],{"type":47,"value":171},{"type":41,"tag":83,"props":2307,"children":2308},{"style":144},[2309],{"type":47,"value":313},{"type":41,"tag":83,"props":2311,"children":2312},{"style":138},[2313],{"type":47,"value":176},{"type":41,"tag":83,"props":2315,"children":2317},{"class":85,"line":2316},20,[2318],{"type":41,"tag":83,"props":2319,"children":2320},{"emptyLinePlaceholder":183},[2321],{"type":47,"value":186},{"type":41,"tag":83,"props":2323,"children":2325},{"class":85,"line":2324},21,[2326],{"type":41,"tag":83,"props":2327,"children":2328},{"style":193},[2329],{"type":47,"value":2330},"\u002F\u002F Sorted Sets\n",{"type":41,"tag":83,"props":2332,"children":2334},{"class":85,"line":2333},22,[2335,2339,2343,2347,2352,2356,2360,2365,2369,2373,2377,2382,2386,2391,2395,2400,2404,2408,2413,2417,2421,2425],{"type":41,"tag":83,"props":2336,"children":2337},{"style":132},[2338],{"type":47,"value":849},{"type":41,"tag":83,"props":2340,"children":2341},{"style":144},[2342],{"type":47,"value":854},{"type":41,"tag":83,"props":2344,"children":2345},{"style":138},[2346],{"type":47,"value":359},{"type":41,"tag":83,"props":2348,"children":2349},{"style":224},[2350],{"type":47,"value":2351},"zadd",{"type":41,"tag":83,"props":2353,"children":2354},{"style":144},[2355],{"type":47,"value":231},{"type":41,"tag":83,"props":2357,"children":2358},{"style":138},[2359],{"type":47,"value":171},{"type":41,"tag":83,"props":2361,"children":2362},{"style":96},[2363],{"type":47,"value":2364},"leaderboard",{"type":41,"tag":83,"props":2366,"children":2367},{"style":138},[2368],{"type":47,"value":171},{"type":41,"tag":83,"props":2370,"children":2371},{"style":138},[2372],{"type":47,"value":885},{"type":41,"tag":83,"props":2374,"children":2375},{"style":138},[2376],{"type":47,"value":141},{"type":41,"tag":83,"props":2378,"children":2379},{"style":243},[2380],{"type":47,"value":2381}," score",{"type":41,"tag":83,"props":2383,"children":2384},{"style":138},[2385],{"type":47,"value":251},{"type":41,"tag":83,"props":2387,"children":2388},{"style":1004},[2389],{"type":47,"value":2390}," 100",{"type":41,"tag":83,"props":2392,"children":2393},{"style":138},[2394],{"type":47,"value":885},{"type":41,"tag":83,"props":2396,"children":2397},{"style":243},[2398],{"type":47,"value":2399}," member",{"type":41,"tag":83,"props":2401,"children":2402},{"style":138},[2403],{"type":47,"value":251},{"type":41,"tag":83,"props":2405,"children":2406},{"style":138},[2407],{"type":47,"value":162},{"type":41,"tag":83,"props":2409,"children":2410},{"style":96},[2411],{"type":47,"value":2412},"player1",{"type":41,"tag":83,"props":2414,"children":2415},{"style":138},[2416],{"type":47,"value":171},{"type":41,"tag":83,"props":2418,"children":2419},{"style":138},[2420],{"type":47,"value":152},{"type":41,"tag":83,"props":2422,"children":2423},{"style":144},[2424],{"type":47,"value":313},{"type":41,"tag":83,"props":2426,"children":2427},{"style":138},[2428],{"type":47,"value":176},{"type":41,"tag":83,"props":2430,"children":2432},{"class":85,"line":2431},23,[2433,2437,2441,2445,2450,2454,2458,2462,2466,2470,2474,2478,2482,2486,2490],{"type":41,"tag":83,"props":2434,"children":2435},{"style":132},[2436],{"type":47,"value":849},{"type":41,"tag":83,"props":2438,"children":2439},{"style":144},[2440],{"type":47,"value":854},{"type":41,"tag":83,"props":2442,"children":2443},{"style":138},[2444],{"type":47,"value":359},{"type":41,"tag":83,"props":2446,"children":2447},{"style":224},[2448],{"type":47,"value":2449},"zrange",{"type":41,"tag":83,"props":2451,"children":2452},{"style":144},[2453],{"type":47,"value":231},{"type":41,"tag":83,"props":2455,"children":2456},{"style":138},[2457],{"type":47,"value":171},{"type":41,"tag":83,"props":2459,"children":2460},{"style":96},[2461],{"type":47,"value":2364},{"type":41,"tag":83,"props":2463,"children":2464},{"style":138},[2465],{"type":47,"value":171},{"type":41,"tag":83,"props":2467,"children":2468},{"style":138},[2469],{"type":47,"value":885},{"type":41,"tag":83,"props":2471,"children":2472},{"style":1004},[2473],{"type":47,"value":2150},{"type":41,"tag":83,"props":2475,"children":2476},{"style":138},[2477],{"type":47,"value":885},{"type":41,"tag":83,"props":2479,"children":2480},{"style":138},[2481],{"type":47,"value":2159},{"type":41,"tag":83,"props":2483,"children":2484},{"style":1004},[2485],{"type":47,"value":2164},{"type":41,"tag":83,"props":2487,"children":2488},{"style":144},[2489],{"type":47,"value":313},{"type":41,"tag":83,"props":2491,"children":2492},{"style":138},[2493],{"type":47,"value":176},{"type":41,"tag":83,"props":2495,"children":2497},{"class":85,"line":2496},24,[2498],{"type":41,"tag":83,"props":2499,"children":2500},{"emptyLinePlaceholder":183},[2501],{"type":47,"value":186},{"type":41,"tag":83,"props":2503,"children":2505},{"class":85,"line":2504},25,[2506],{"type":41,"tag":83,"props":2507,"children":2508},{"style":193},[2509],{"type":47,"value":2510},"\u002F\u002F JSON\n",{"type":41,"tag":83,"props":2512,"children":2514},{"class":85,"line":2513},26,[2515,2519,2523,2527,2532,2536,2540,2544,2548,2552,2556,2560,2564,2569,2573,2577,2581,2585,2589,2593,2597,2601,2605,2610,2614,2618,2623,2627,2631,2636,2640,2644,2648,2652],{"type":41,"tag":83,"props":2516,"children":2517},{"style":132},[2518],{"type":47,"value":849},{"type":41,"tag":83,"props":2520,"children":2521},{"style":144},[2522],{"type":47,"value":854},{"type":41,"tag":83,"props":2524,"children":2525},{"style":138},[2526],{"type":47,"value":359},{"type":41,"tag":83,"props":2528,"children":2529},{"style":144},[2530],{"type":47,"value":2531},"json",{"type":41,"tag":83,"props":2533,"children":2534},{"style":138},[2535],{"type":47,"value":359},{"type":41,"tag":83,"props":2537,"children":2538},{"style":224},[2539],{"type":47,"value":863},{"type":41,"tag":83,"props":2541,"children":2542},{"style":144},[2543],{"type":47,"value":231},{"type":41,"tag":83,"props":2545,"children":2546},{"style":138},[2547],{"type":47,"value":171},{"type":41,"tag":83,"props":2549,"children":2550},{"style":96},[2551],{"type":47,"value":1778},{"type":41,"tag":83,"props":2553,"children":2554},{"style":138},[2555],{"type":47,"value":171},{"type":41,"tag":83,"props":2557,"children":2558},{"style":138},[2559],{"type":47,"value":885},{"type":41,"tag":83,"props":2561,"children":2562},{"style":138},[2563],{"type":47,"value":162},{"type":41,"tag":83,"props":2565,"children":2566},{"style":96},[2567],{"type":47,"value":2568},"$",{"type":41,"tag":83,"props":2570,"children":2571},{"style":138},[2572],{"type":47,"value":171},{"type":41,"tag":83,"props":2574,"children":2575},{"style":138},[2576],{"type":47,"value":885},{"type":41,"tag":83,"props":2578,"children":2579},{"style":138},[2580],{"type":47,"value":141},{"type":41,"tag":83,"props":2582,"children":2583},{"style":243},[2584],{"type":47,"value":1268},{"type":41,"tag":83,"props":2586,"children":2587},{"style":138},[2588],{"type":47,"value":251},{"type":41,"tag":83,"props":2590,"children":2591},{"style":138},[2592],{"type":47,"value":162},{"type":41,"tag":83,"props":2594,"children":2595},{"style":96},[2596],{"type":47,"value":1281},{"type":41,"tag":83,"props":2598,"children":2599},{"style":138},[2600],{"type":47,"value":171},{"type":41,"tag":83,"props":2602,"children":2603},{"style":138},[2604],{"type":47,"value":885},{"type":41,"tag":83,"props":2606,"children":2607},{"style":243},[2608],{"type":47,"value":2609}," address",{"type":41,"tag":83,"props":2611,"children":2612},{"style":138},[2613],{"type":47,"value":251},{"type":41,"tag":83,"props":2615,"children":2616},{"style":138},[2617],{"type":47,"value":141},{"type":41,"tag":83,"props":2619,"children":2620},{"style":243},[2621],{"type":47,"value":2622}," city",{"type":41,"tag":83,"props":2624,"children":2625},{"style":138},[2626],{"type":47,"value":251},{"type":41,"tag":83,"props":2628,"children":2629},{"style":138},[2630],{"type":47,"value":162},{"type":41,"tag":83,"props":2632,"children":2633},{"style":96},[2634],{"type":47,"value":2635},"NYC",{"type":41,"tag":83,"props":2637,"children":2638},{"style":138},[2639],{"type":47,"value":171},{"type":41,"tag":83,"props":2641,"children":2642},{"style":138},[2643],{"type":47,"value":152},{"type":41,"tag":83,"props":2645,"children":2646},{"style":138},[2647],{"type":47,"value":152},{"type":41,"tag":83,"props":2649,"children":2650},{"style":144},[2651],{"type":47,"value":313},{"type":41,"tag":83,"props":2653,"children":2654},{"style":138},[2655],{"type":47,"value":176},{"type":41,"tag":83,"props":2657,"children":2659},{"class":85,"line":2658},27,[2660,2664,2668,2672,2676,2680,2684,2688,2692,2696,2700,2704],{"type":41,"tag":83,"props":2661,"children":2662},{"style":132},[2663],{"type":47,"value":849},{"type":41,"tag":83,"props":2665,"children":2666},{"style":144},[2667],{"type":47,"value":854},{"type":41,"tag":83,"props":2669,"children":2670},{"style":138},[2671],{"type":47,"value":359},{"type":41,"tag":83,"props":2673,"children":2674},{"style":144},[2675],{"type":47,"value":2531},{"type":41,"tag":83,"props":2677,"children":2678},{"style":138},[2679],{"type":47,"value":359},{"type":41,"tag":83,"props":2681,"children":2682},{"style":224},[2683],{"type":47,"value":946},{"type":41,"tag":83,"props":2685,"children":2686},{"style":144},[2687],{"type":47,"value":231},{"type":41,"tag":83,"props":2689,"children":2690},{"style":138},[2691],{"type":47,"value":171},{"type":41,"tag":83,"props":2693,"children":2694},{"style":96},[2695],{"type":47,"value":1778},{"type":41,"tag":83,"props":2697,"children":2698},{"style":138},[2699],{"type":47,"value":171},{"type":41,"tag":83,"props":2701,"children":2702},{"style":144},[2703],{"type":47,"value":313},{"type":41,"tag":83,"props":2705,"children":2706},{"style":138},[2707],{"type":47,"value":176},{"type":41,"tag":83,"props":2709,"children":2711},{"class":85,"line":2710},28,[2712],{"type":41,"tag":83,"props":2713,"children":2714},{"emptyLinePlaceholder":183},[2715],{"type":47,"value":186},{"type":41,"tag":83,"props":2717,"children":2719},{"class":85,"line":2718},29,[2720],{"type":41,"tag":83,"props":2721,"children":2722},{"style":193},[2723],{"type":47,"value":2724},"\u002F\u002F Expiration\n",{"type":41,"tag":83,"props":2726,"children":2728},{"class":85,"line":2727},30,[2729,2733,2737,2741,2746,2750,2754,2759,2763,2767,2772,2776,2780,2785,2789,2793,2798,2802,2806,2810],{"type":41,"tag":83,"props":2730,"children":2731},{"style":132},[2732],{"type":47,"value":849},{"type":41,"tag":83,"props":2734,"children":2735},{"style":144},[2736],{"type":47,"value":854},{"type":41,"tag":83,"props":2738,"children":2739},{"style":138},[2740],{"type":47,"value":359},{"type":41,"tag":83,"props":2742,"children":2743},{"style":224},[2744],{"type":47,"value":2745},"setex",{"type":41,"tag":83,"props":2747,"children":2748},{"style":144},[2749],{"type":47,"value":231},{"type":41,"tag":83,"props":2751,"children":2752},{"style":138},[2753],{"type":47,"value":171},{"type":41,"tag":83,"props":2755,"children":2756},{"style":96},[2757],{"type":47,"value":2758},"session",{"type":41,"tag":83,"props":2760,"children":2761},{"style":138},[2762],{"type":47,"value":171},{"type":41,"tag":83,"props":2764,"children":2765},{"style":138},[2766],{"type":47,"value":885},{"type":41,"tag":83,"props":2768,"children":2769},{"style":1004},[2770],{"type":47,"value":2771}," 3600",{"type":41,"tag":83,"props":2773,"children":2774},{"style":138},[2775],{"type":47,"value":885},{"type":41,"tag":83,"props":2777,"children":2778},{"style":138},[2779],{"type":47,"value":141},{"type":41,"tag":83,"props":2781,"children":2782},{"style":243},[2783],{"type":47,"value":2784}," userId",{"type":41,"tag":83,"props":2786,"children":2787},{"style":138},[2788],{"type":47,"value":251},{"type":41,"tag":83,"props":2790,"children":2791},{"style":138},[2792],{"type":47,"value":162},{"type":41,"tag":83,"props":2794,"children":2795},{"style":96},[2796],{"type":47,"value":2797},"123",{"type":41,"tag":83,"props":2799,"children":2800},{"style":138},[2801],{"type":47,"value":171},{"type":41,"tag":83,"props":2803,"children":2804},{"style":138},[2805],{"type":47,"value":152},{"type":41,"tag":83,"props":2807,"children":2808},{"style":144},[2809],{"type":47,"value":313},{"type":41,"tag":83,"props":2811,"children":2812},{"style":138},[2813],{"type":47,"value":176},{"type":41,"tag":83,"props":2815,"children":2817},{"class":85,"line":2816},31,[2818,2822,2826,2830,2835,2839,2843,2847,2851,2855,2860,2864],{"type":41,"tag":83,"props":2819,"children":2820},{"style":132},[2821],{"type":47,"value":849},{"type":41,"tag":83,"props":2823,"children":2824},{"style":144},[2825],{"type":47,"value":854},{"type":41,"tag":83,"props":2827,"children":2828},{"style":138},[2829],{"type":47,"value":359},{"type":41,"tag":83,"props":2831,"children":2832},{"style":224},[2833],{"type":47,"value":2834},"expire",{"type":41,"tag":83,"props":2836,"children":2837},{"style":144},[2838],{"type":47,"value":231},{"type":41,"tag":83,"props":2840,"children":2841},{"style":138},[2842],{"type":47,"value":171},{"type":41,"tag":83,"props":2844,"children":2845},{"style":96},[2846],{"type":47,"value":1569},{"type":41,"tag":83,"props":2848,"children":2849},{"style":138},[2850],{"type":47,"value":171},{"type":41,"tag":83,"props":2852,"children":2853},{"style":138},[2854],{"type":47,"value":885},{"type":41,"tag":83,"props":2856,"children":2857},{"style":1004},[2858],{"type":47,"value":2859}," 60",{"type":41,"tag":83,"props":2861,"children":2862},{"style":144},[2863],{"type":47,"value":313},{"type":41,"tag":83,"props":2865,"children":2866},{"style":138},[2867],{"type":47,"value":176},{"type":41,"tag":83,"props":2869,"children":2871},{"class":85,"line":2870},32,[2872,2876,2880,2884,2889,2893,2897,2901,2905,2909],{"type":41,"tag":83,"props":2873,"children":2874},{"style":132},[2875],{"type":47,"value":849},{"type":41,"tag":83,"props":2877,"children":2878},{"style":144},[2879],{"type":47,"value":854},{"type":41,"tag":83,"props":2881,"children":2882},{"style":138},[2883],{"type":47,"value":359},{"type":41,"tag":83,"props":2885,"children":2886},{"style":224},[2887],{"type":47,"value":2888},"ttl",{"type":41,"tag":83,"props":2890,"children":2891},{"style":144},[2892],{"type":47,"value":231},{"type":41,"tag":83,"props":2894,"children":2895},{"style":138},[2896],{"type":47,"value":171},{"type":41,"tag":83,"props":2898,"children":2899},{"style":96},[2900],{"type":47,"value":1569},{"type":41,"tag":83,"props":2902,"children":2903},{"style":138},[2904],{"type":47,"value":171},{"type":41,"tag":83,"props":2906,"children":2907},{"style":144},[2908],{"type":47,"value":313},{"type":41,"tag":83,"props":2910,"children":2911},{"style":138},[2912],{"type":47,"value":176},{"type":41,"tag":65,"props":2914,"children":2916},{"id":2915},"best-practices",[2917],{"type":47,"value":2918},"Best Practices",{"type":41,"tag":2920,"props":2921,"children":2922},"ol",{},[2923,2933,2943,2953,2963,2973],{"type":41,"tag":454,"props":2924,"children":2925},{},[2926,2931],{"type":41,"tag":458,"props":2927,"children":2928},{},[2929],{"type":47,"value":2930},"Use environment variables",{"type":47,"value":2932}," for credentials, never hardcode",{"type":41,"tag":454,"props":2934,"children":2935},{},[2936,2941],{"type":41,"tag":458,"props":2937,"children":2938},{},[2939],{"type":47,"value":2940},"Leverage auto-serialization",{"type":47,"value":2942}," - pass native JavaScript types",{"type":41,"tag":454,"props":2944,"children":2945},{},[2946,2951],{"type":41,"tag":458,"props":2947,"children":2948},{},[2949],{"type":47,"value":2950},"Use TypeScript types",{"type":47,"value":2952}," for better type safety",{"type":41,"tag":454,"props":2954,"children":2955},{},[2956,2961],{"type":41,"tag":458,"props":2957,"children":2958},{},[2959],{"type":47,"value":2960},"Set appropriate TTLs",{"type":47,"value":2962}," to manage memory",{"type":41,"tag":454,"props":2964,"children":2965},{},[2966,2971],{"type":41,"tag":458,"props":2967,"children":2968},{},[2969],{"type":47,"value":2970},"Use pipelines",{"type":47,"value":2972}," for multiple operations",{"type":41,"tag":454,"props":2974,"children":2975},{},[2976,2981,2983,2989,2991,2997],{"type":41,"tag":458,"props":2977,"children":2978},{},[2979],{"type":47,"value":2980},"Namespace your keys",{"type":47,"value":2982}," (e.g., ",{"type":41,"tag":56,"props":2984,"children":2986},{"className":2985},[],[2987],{"type":47,"value":2988},"user:123",{"type":47,"value":2990},", ",{"type":41,"tag":56,"props":2992,"children":2994},{"className":2993},[],[2995],{"type":47,"value":2996},"session:abc",{"type":47,"value":313},{"type":41,"tag":65,"props":2999,"children":3001},{"id":3000},"resources",[3002],{"type":47,"value":3003},"Resources",{"type":41,"tag":450,"props":3005,"children":3006},{},[3007,3019,3028,3038],{"type":41,"tag":454,"props":3008,"children":3009},{},[3010],{"type":41,"tag":3011,"props":3012,"children":3016},"a",{"href":3013,"rel":3014},"https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis",[3015],"nofollow",[3017],{"type":47,"value":3018},"Official Documentation",{"type":41,"tag":454,"props":3020,"children":3021},{},[3022],{"type":41,"tag":3011,"props":3023,"children":3025},{"href":24,"rel":3024},[3015],[3026],{"type":47,"value":3027},"GitHub Repository",{"type":41,"tag":454,"props":3029,"children":3030},{},[3031],{"type":41,"tag":3011,"props":3032,"children":3035},{"href":3033,"rel":3034},"https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fts\u002Foverview",[3015],[3036],{"type":47,"value":3037},"API Reference",{"type":41,"tag":454,"props":3039,"children":3040},{},[3041],{"type":41,"tag":3011,"props":3042,"children":3045},{"href":3043,"rel":3044},"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fredis-js\u002Ftree\u002Fmain\u002Fexamples",[3015],[3046],{"type":47,"value":3047},"Examples",{"type":41,"tag":65,"props":3049,"children":3051},{"id":3050},"getting-help",[3052],{"type":47,"value":3053},"Getting Help",{"type":41,"tag":50,"props":3055,"children":3056},{},[3057,3059,3065],{"type":47,"value":3058},"For detailed information on specific topics, refer to the individual skill files in the ",{"type":41,"tag":56,"props":3060,"children":3062},{"className":3061},[],[3063],{"type":47,"value":3064},"skills\u002F",{"type":47,"value":3066}," directory. Each file contains comprehensive examples, use cases, and best practices for its topic.",{"type":41,"tag":3068,"props":3069,"children":3070},"style",{},[3071],{"type":47,"value":3072},"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":3074,"total":2271},[3075,3093,3108,3120,3134,3150,3157,3172,3187,3202,3219,3233],{"slug":3076,"name":3076,"fn":3077,"description":3078,"org":3079,"tags":3080,"stars":3090,"repoUrl":3091,"updatedAt":3092},"context7-cli","manage documentation and skills with ctx7","Use the ctx7 CLI to fetch library documentation, manage AI coding skills, and configure Context7 MCP. Activate when the user mentions \"ctx7\" or \"context7\", needs current docs for any library, wants to install\u002Fsearch\u002Fgenerate skills, or needs to set up Context7 for their AI coding agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3081,3084,3087],{"name":3082,"slug":3083,"type":15},"CLI","cli",{"name":3085,"slug":3086,"type":15},"Documentation","documentation",{"name":3088,"slug":3089,"type":15},"Knowledge Management","knowledge-management",60095,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fcontext7","2026-04-06T18:55:02.689254",{"slug":3094,"name":3094,"fn":3095,"description":3096,"org":3097,"tags":3098,"stars":3090,"repoUrl":3091,"updatedAt":3107},"context7-docs","fetch documentation and code examples","Fetch up-to-date documentation and code examples for any library, framework, SDK, CLI tool, or cloud service. Use whenever the user asks about a specific library — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot — because training data may not reflect recent API changes or version updates.\nAlways use for: API syntax questions, configuration options, version migration issues, \"how do I\" questions mentioning a library name, debugging that involves library-specific behavior, setup instructions, and CLI tool usage.\nUse even when you think you know the answer. Do not rely on training data for API details, signatures, or configuration options — they are frequently out of date. Prefer this over web search for library documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3099,3100,3101,3104],{"name":3082,"slug":3083,"type":15},{"name":3085,"slug":3086,"type":15},{"name":3102,"slug":3103,"type":15},"Reference","reference",{"name":3105,"slug":3106,"type":15},"SDK","sdk","2026-07-28T05:35:31.125695",{"slug":3109,"name":3109,"fn":3110,"description":3111,"org":3112,"tags":3113,"stars":3090,"repoUrl":3091,"updatedAt":3119},"context7-mcp","retrieve library documentation via MCP","This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3114,3115,3116],{"name":3085,"slug":3086,"type":15},{"name":3088,"slug":3089,"type":15},{"name":3117,"slug":3118,"type":15},"MCP","mcp","2026-07-28T05:35:32.109879",{"slug":3121,"name":3121,"fn":3122,"description":3123,"org":3124,"tags":3125,"stars":3090,"repoUrl":3091,"updatedAt":3133},"find-docs","retrieve documentation for developer technologies","Retrieves up-to-date documentation, API references, and code examples for any developer technology. Use this skill whenever the user asks about a specific library, framework, SDK, CLI tool, or cloud service — even for well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. Your training data may not reflect recent API changes or version updates.\nAlways use for: API syntax questions, configuration options, version migration issues, \"how do I\" questions mentioning a library name, debugging that involves library-specific behavior, setup instructions, and CLI tool usage.\nUse even when you think you know the answer — do not rely on training data for API details, signatures, or configuration options as they are frequently outdated. Always verify against current docs. Prefer this over web search for library documentation and API details.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3126,3127,3130],{"name":3085,"slug":3086,"type":15},{"name":3128,"slug":3129,"type":15},"Research","research",{"name":3131,"slug":3132,"type":15},"Search","search","2026-07-28T05:35:30.135004",{"slug":3135,"name":3135,"fn":3136,"description":3137,"org":3138,"tags":3139,"stars":3147,"repoUrl":3148,"updatedAt":3149},"upstash-ratelimit-ts","implement Redis rate limiting with Upstash","Lightweight guidance for using the Redis Rate Limit TypeScript SDK, including setup steps, basic usage, and pointers to advanced algorithm, features, pricing, and traffic‑protection docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3140,3143,3144,3146],{"name":3141,"slug":3142,"type":15},"Performance","performance",{"name":17,"slug":18,"type":15},{"name":3145,"slug":122,"type":15},"TypeScript",{"name":9,"slug":8,"type":15},2043,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fratelimit-js","2026-04-06T18:55:05.25459",{"slug":4,"name":4,"fn":5,"description":6,"org":3151,"tags":3152,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3153,3154,3155,3156],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":3158,"name":3158,"fn":3159,"description":3160,"org":3161,"tags":3162,"stars":3169,"repoUrl":3170,"updatedAt":3171},"qstash-js","manage serverless messaging with QStash","Work with the QStash JavaScript\u002FTypeScript SDK for serverless messaging, scheduling. Use when publishing messages to HTTP endpoints, creating schedules, managing queues, verifying incoming messages in serverless environments.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3163,3166,3167,3168],{"name":3164,"slug":3165,"type":15},"Messaging","messaging",{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},268,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fqstash-js","2026-04-06T18:55:07.811408",{"slug":3173,"name":3173,"fn":3174,"description":3175,"org":3176,"tags":3177,"stars":3184,"repoUrl":3185,"updatedAt":3186},"upstash-workflow-js","build serverless workflows with Upstash","Lightweight guidance for using the Upstash Workflow SDK to define, trigger, and manage workflows. Use this Skill whenever a user wants to create workflow endpoints, run steps, or interact with the Upstash Workflow client.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3178,3179,3180,3181],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":3182,"slug":3183,"type":15},"Workflow Automation","workflow-automation",150,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fworkflow-js","2026-04-06T18:55:09.106744",{"slug":3188,"name":3188,"fn":3189,"description":3190,"org":3191,"tags":3192,"stars":3199,"repoUrl":3200,"updatedAt":3201},"upstash-vector-js","implement vector search with Upstash","Provides quick-start guidance and a unified entry point for Vector features, SDK usage, and integrations. Use when users ask how to work with Vector, its TS SDK, features, or supported frameworks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3193,3196,3197,3198],{"name":3194,"slug":3195,"type":15},"AI Infrastructure","ai-infrastructure",{"name":13,"slug":14,"type":15},{"name":3131,"slug":3132,"type":15},{"name":9,"slug":8,"type":15},70,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fvector-js","2026-04-06T18:55:10.452627",{"slug":3203,"name":3203,"fn":3204,"description":3205,"org":3206,"tags":3207,"stars":3216,"repoUrl":3217,"updatedAt":3218},"upstash-box-js","build sandboxed environments with Upstash Box","Work with the @upstash\u002Fbox SDK for sandboxed cloud containers with AI agents, shell, filesystem, and git. Use when building with Upstash Box, creating sandboxed environments, running AI agents in containers, or orchestrating parallel boxes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3208,3211,3212,3215],{"name":3209,"slug":3210,"type":15},"Agents","agents",{"name":13,"slug":14,"type":15},{"name":3213,"slug":3214,"type":15},"Sandboxing","sandboxing",{"name":9,"slug":8,"type":15},34,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fbox","2026-04-06T18:55:14.361763",{"slug":3220,"name":3220,"fn":3221,"description":3222,"org":3223,"tags":3224,"stars":2333,"repoUrl":3231,"updatedAt":3232},"upstash-search-js","implement search features with Upstash","Entry point for documentation skills covering Upstash Search quick starts, core concepts, and TypeScript SDK usage. Use when a user asks how to get started, how indexing works, or how to use the TS client.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3225,3228,3229,3230],{"name":3226,"slug":3227,"type":15},"API Development","api-development",{"name":13,"slug":14,"type":15},{"name":3131,"slug":3132,"type":15},{"name":9,"slug":8,"type":15},"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fsearch-js","2026-04-06T18:55:11.769669",{"slug":8,"name":8,"fn":3234,"description":3235,"org":3236,"tags":3237,"stars":2107,"repoUrl":3244,"updatedAt":3245},"build applications with Upstash SDKs","Work with any Upstash TypeScript\u002FJavaScript SDK including Redis, Box, QStash, Workflow, Vector, Search and Ratelimit. Use when the user is working with any Upstash product or SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3238,3241,3242,3243],{"name":3239,"slug":3240,"type":15},"Database","database",{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fskills","2026-04-06T18:55:15.67714",{"items":3247,"total":86},[3248],{"slug":4,"name":4,"fn":5,"description":6,"org":3249,"tags":3250,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3251,3252,3253,3254],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15}]