database-redis
Installation
SKILL.md
Redis Best Practices
Priority: P0 (CRITICAL)
- Security:
- Access Control: Use Redis 6.0+ ACLs (
ACL SETUSER) to restrict commands by user/role. - Encryption: Always enable TLS for data-in-transit (standard in managed Redis like Azure/AWS).
- Dangerous Commands: Disable or rename
FLUSHALL,KEYS,CONFIG, andSHUTDOWNin production. - Connection Resilience:
- Pooling: Use connection pooling with tuned high/low watermarks to avoid connection churn.
- Timeouts: Set strict
read_timeoutandconnect_retriesto handle transient network saturation.
Guidelines
- Key Design:
- Namespacing: Use colons to namespace keys (e.g.,
app:user:123,rate:limit:ip:1.1.1.1). - Readability vs Size: Keep keys descriptive but compact; avoid keys > 512 bytes.
- Commands & Performance:
- O(N) Avoidance: Use
SCANinstead ofKEYS. UseUNLINKinstead ofDELfor background reclamation of large keys. - Lua Scripting: Prioritize
EVALSHAfor atomic logic; ensure scripts pre-loaded to save bandwidth. - Massive Range: Limit
ZRANGE,HGETALL, andLRANGEresults with offsets/limits. - Memory Management:
- Eviction Strategy: Use
allkeys-lrufor general caches andvolatile-lrufor mixed persistent/ephemeral data. - Lazy Freeing: Enable
lazyfree-lazy-evictionandlazyfree-lazy-expire(Redis 4.0+) to offload cleanup from main thread. - Monitoring: Watch
Used Memory RSSvsUsed Memory Dataset. Large fragmentation suggests need forMEMORY PURGEor scaling.
Anti-Patterns
- No sole truth in Redis: Always persist critical data to durable primary database.
- No large blobs: Split values > 100KB into smaller keys or use Hashes for field access.
- No JSON for objects: Use
HSETfor object fields to enable O(1) access without full decode. - No TTL-less keys: Set TTL or eviction policy on all non-permanent keys to prevent unbounded growth.
References
Related skills
More from hoangnguyen0403/agent-skills-standard
skill creator
Standards for creating new High-Density Agent Skills with optimal token economy.
182caveman
>
1java-language
Modern Java 21+ standards including Records, Pattern Matching, and Virtual Threads. Use when working with Java records, sealed classes, switch expressions, text blocks, Optional, or upgrading from older Java versions. (triggers: **/*.java, pom.xml, build.gradle, record, sealed, switch, var, Optional, stream, VirtualThread, instanceof, text block)
1swift swiftui
Standards for State Management, View Lifecycle, and Property Wrappers
1swift tooling
Standards for SPM, Build Configs, and Code Quality
1swift testing
Standards for XCTest, Async Tests, and Test Organization
1