Complete documentation refactoring with 57 service docs

- Refactored README.md, getting-started.md, quick-reference.md
- Enhanced setup-homelab.sh with 9-step automated process
- Created services-overview.md with all stacks
- Added comprehensive documentation for 57 services in docs/service-docs/
- All services include: overview, configuration, resources, educational content
- Coverage: Core, Infrastructure, Dashboards, Media, Media-Extended, Home Assistant, Productivity, Utilities, Monitoring, Development stacks
- Educational focus with links to tutorials, videos, and guides
This commit is contained in:
kelinfoxy
2026-01-12 18:03:12 -05:00
parent 906e6008ea
commit cba45556c7
69 changed files with 24404 additions and 1522 deletions

213
docs/service-docs/redis.md Normal file
View File

@@ -0,0 +1,213 @@
# Redis - In-Memory Cache
## Table of Contents
- [Overview](#overview)
- [What is Redis?](#what-is-redis)
- [Why Use Redis?](#why-use-redis)
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
- [Official Resources](#official-resources)
- [Redis Instances](#redis-instances)
## Overview
**Category:** In-Memory Data Store
**Docker Image:** [redis](https://hub.docker.com/_/redis)
**Default Stack:** `development.yml` and others
**Ports:** 6379 (internal)
## What is Redis?
Redis (Remote Dictionary Server) is an in-memory data structure store used as a cache, message broker, and database. It's incredibly fast because data is stored in RAM, making it perfect for caching, sessions, queues, and real-time applications.
### Key Features
- **In-Memory:** Microsecond latency
- **Data Structures:** Strings, lists, sets, hashes, etc.
- **Persistence:** Optional disk writes
- **Pub/Sub:** Message broker
- **Atomic Operations:** Thread-safe operations
- **Replication:** Master-slave
- **Lua Scripting:** Server-side scripts
- **Free & Open Source:** BSD license
## Why Use Redis?
1. **Speed:** Extremely fast (in RAM)
2. **Versatile:** Cache, queue, pub/sub, database
3. **Simple:** Easy to use
4. **Reliable:** Battle-tested
5. **Rich Data Types:** More than key-value
6. **Atomic:** Safe concurrent access
7. **Popular:** Wide adoption
## Configuration in AI-Homelab
AI-Homelab uses Redis for caching and session storage in multiple applications.
## Official Resources
- **Website:** https://redis.io
- **Documentation:** https://redis.io/docs
- **Commands:** https://redis.io/commands
## Redis Instances
### Authentik Redis (authentik-redis)
```yaml
authentik-redis:
image: redis:alpine
container_name: authentik-redis
restart: unless-stopped
networks:
- traefik-network
command: --save 60 1 --loglevel warning
volumes:
- /opt/stacks/infrastructure/authentik-redis/data:/data
```
**Purpose:** Authentik SSO caching and sessions
**Location:** `/opt/stacks/infrastructure/authentik-redis/data`
### GitLab Redis (gitlab-redis)
```yaml
gitlab-redis:
image: redis:alpine
container_name: gitlab-redis
restart: unless-stopped
networks:
- traefik-network
command: --save 60 1 --loglevel warning
volumes:
- /opt/stacks/development/gitlab-redis/data:/data
```
**Purpose:** GitLab caching and background jobs
**Location:** `/opt/stacks/development/gitlab-redis/data`
### Development Redis (redis)
```yaml
redis:
image: redis:alpine
container_name: redis
restart: unless-stopped
networks:
- traefik-network
ports:
- "6379:6379"
command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}
volumes:
- /opt/stacks/development/redis/data:/data
```
**Purpose:** General development caching
**Location:** `/opt/stacks/development/redis/data`
## Management
### Access Redis CLI
```bash
# Connect to Redis
docker exec -it redis redis-cli
# With password
docker exec -it redis redis-cli -a your_password
# Or authenticate after connecting
AUTH your_password
```
### Common Commands
```redis
# Set key
SET mykey "Hello"
# Get key
GET mykey
# Set with expiration (seconds)
SETEX mykey 60 "expires in 60 seconds"
# List all keys
KEYS *
# Delete key
DEL mykey
# Check if key exists
EXISTS mykey
# Get key type
TYPE mykey
# Flush all data (careful!)
FLUSHALL
# Get info
INFO
```
### Monitor Activity
```bash
# Monitor commands in real-time
docker exec -it redis redis-cli MONITOR
# Get statistics
docker exec -it redis redis-cli INFO stats
```
### Backup Redis
```bash
# Redis automatically saves to dump.rdb
# Just backup the data volume
tar -czf redis-backup.tar.gz /opt/stacks/development/redis/data/
# Force save now
docker exec redis redis-cli SAVE
```
## Summary
Redis provides in-memory storage offering:
- Ultra-fast caching
- Session storage
- Message queuing (pub/sub)
- Real-time operations
- Rich data structures
- Persistence options
- Atomic operations
- Free and open-source
**Perfect for:**
- Application caching
- Session storage
- Real-time analytics
- Message queues
- Leaderboards
- Rate limiting
- Pub/sub messaging
**Key Points:**
- In-memory (very fast)
- Data persists to disk optionally
- Multiple data structures
- Simple key-value interface
- Use password protection
- Low resource usage
- Alpine image is tiny
**Remember:**
- Set password (--requirepass)
- Data stored in RAM
- Configure persistence
- Monitor memory usage
- Backup dump.rdb file
- Use for temporary data
- Not a full database replacement
Redis accelerates your applications with caching!