Skip to content
Back to skills

Redis

ASecurity

Design Redis caching, TTLs, and eviction policies; configure ACL auth and persistence (RDB/AOF); avoid KEYS, unbounded memory, and backup-restore windows that lose cache-aside coherency.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 22, 2026
ai-agentsgobashsqldatabasedevops

Works with

  • cursor
  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 22, 2026

npx -y skills add alivirgo/Major-AI-Skills --skill redis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Redis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Redis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alivirgo-redis/badge)](https://www.skillsdirectory.com/skills/alivirgo-redis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: redis
description: "Design Redis caching, TTLs, and eviction policies; configure ACL auth and persistence (RDB/AOF); avoid KEYS, unbounded memory, and backup-restore windows that lose cache-aside coherency."
category: devops
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["redis", "cache", "ttl", "eviction", "aof", "rdb", "acl", "cluster", "streams", "backpressure"]
tools: ["claude", "cursor", "gemini", "codex"]
---

# Redis Caching & Data Structures AI Skill Guide

## Overview & Engine Architecture

Redis is a **single-threaded** (per shard) in-memory data structure server: strings, hashes, lists, sets, sorted sets, streams. It excels at cache, rate limits, coordination, and lightweight queues—but **eviction ≠ persistence** and **cache ≠ system of record** unless durability is explicitly engineered.

```
App -> Redis (standalone / Sentinel / Cluster)
         |- TTL + maxmemory-policy (eviction)
         |- optional RDB snapshots + AOF log
         |- ACL users / TLS (managed offerings)
         |- replication buffer (not counted in maxmemory)
```

---

## When to use / when not to

**Use when**

- Cache-aside or read-through for hot reads with explicit TTL
- Rate limiting, session storage with sliding TTL, leaderboards (ZSET)
- Lightweight work queues (LIST/STREAM) with documented at-least-once behavior

**Do not use when**

- Redis is the only copy of financial ledger data without AOF + backups + restore drills
- You need multi-key ACID across many keys in Cluster without hash tags
- Someone asks to run `KEYS *` or `FLUSHALL` in production—refuse without approval

---

## Operational Capabilities & Agent Directives

1. **Connection safety**: Use TLS and ACL users with command restrictions; cap client output buffers; set `timeout` on idle clients.
2. **TTL discipline**: Every cache key gets TTL; document stale-read tolerance; invalidate on write (`DEL`/`UNLINK` or versioned keys).
3. **Eviction vs durability**: `allkeys-lru` evicts cache keys under pressure; **`noeviction`** rejects writes—pick per instance role. Leave headroom below `maxmemory` for replication buffers.
4. **Persistence**: Hybrid **RDB + AOF** is common in production; `appendfsync everysec` ≈ 1s loss window; `always` is slower. Copy RDB/AOF during **BACKUP SEAL** or off-host backups—not mid-rewrite without guidance.
5. **Backpressure**: Large values block the event loop; pipeline responsibly; use `CLIENT PAUSE` only in controlled maintenance.
6. **Exactly-once myth**: Streams consumer groups are **at-least-once**; use idempotent handlers + `XACK` after side effects; pending entries list (PEL) needs monitoring.
7. **Auth**: `requirepass` alone is legacy; prefer ACL; never commit passwords; rotate on compromise.

---

## Production examples

### Cache-aside (namespaced keys)

```bash
SET shop:prod:item:42 '{"id":42,"price":199}' EX 300 NX
GET shop:prod:item:42
# On DB write success:
UNLINK shop:prod:item:42
```

### Rate limit (prefer app token bucket; fixed window sketch)

```bash
SET ratelimit:user:9:202610061200 0 EX 60 NX
INCR ratelimit:user:9:202610061200
```

### Stream consumer group (ack after work)

```bash
XGROUP CREATE events order-workers $ MKSTREAM
XREADGROUP GROUP order-workers consumer1 COUNT 10 BLOCK 2000 STREAMS events >
# process ...
XACK events order-workers <message-id>
```

### Safe iteration

```bash
SCAN 0 MATCH shop:prod:item:* COUNT 100
```

---

## Technical troubleshooting matrix

| Failure signature | Root cause | Diagnostic & fix |
| :--- | :--- | :--- |
| OOM / evictions spike | `maxmemory` too low or no TTL | Raise memory; TTL all cache keys; split instances |
| `OOM command not allowed` | `noeviction` + full memory | Eviction policy or scale; stop non-cache use on same DB |
| Data “lost” after restart | No AOF/RDB or wrong `dir` | Enable hybrid persistence; verify backup files |
| Slow p99 | Big values / `KEYS` / Lua loops | Shrink payloads; SCAN; split hot keys |
| Replica lag / partial sync fail | Buffer limits | Increase repl backlog; reduce write burst |
| Cache stampede | Thundering herd on expiry | Jitter TTL; singleflight in app |
| Restore mismatch | Restored RDB while app wrote DB | Treat cache as cold; flush namespaced keys post-restore |

---

## Best practices

- Separate **cache** Redis from **queue/coordination** Redis when possible.
- Cluster: use **hash tags** `{user:42}:...` for multi-key ops in one slot.
- Monitor: `used_memory`, evicted_keys, instantaneous_ops_per_sec, connected_clients.
- Distributed locks: prefer Redlock only with eyes open; use **fencing tokens** for external resources.

---

## Limitations

- Locks without fencing can double-write to downstream systems.
- Active-active geo replication has conflict semantics—not transparent multi-master SQL.
- Managed Redis changes VPC, AUTH, and backup UX.

---

## Related skills

- `@postgresql` — system of record behind cache
- `@kafka` / `@nats` — durable event bus vs Redis streams
- `@opentelemetry` — trace cache miss latency

---

## Agent Operational Directive

> **MANDATORY**: Never recommend Redis as sole durable store without documented AOF/RDB/backup strategy and restore test. Set TTL on cache keys. Ban `KEYS *` in production paths. Ack stream messages only after successful side effects.

---

## Source anchors (research)

- [Redis persistence (RDB, AOF, BACKUP)](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/)
- [Redis eviction policies](https://redis.io/docs/latest/develop/reference/eviction/)
- [Redis Enterprise recovery / partial data loss](https://redis.io/docs/latest/operate/rs/databases/recover/)

Files in this skill

  • SKILL.md5.5 KB
  • gemini.md826 B
  • gpt.md1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.