Skip to main content
Redis is an in-memory data structure store that can significantly improve the performance of your Spoo.me deployment by providing caching capabilities. While Redis is optional, it’s highly recommended for production deployments that expect high traffic volumes.
Redis integration is completely optional. Your Spoo.me instance will work perfectly without Redis, but adding it can improve response times and reduce database load.

Benefits of Adding Redis

Faster Response Times: Cache frequently accessed URLs and analytics data Reduced Database Load: Fewer queries to MongoDB for popular URLs Rate Limiting: Implement sophisticated rate limiting and abuse prevention

When to Add Redis

Consider adding Redis to your deployment if:
  • You want to improve user experience with faster load times
  • You expect high traffic volumes (>1000 URLs shortened per day)
  • Your MongoDB is showing performance bottlenecks
  • You’re running multiple server instances or using serverless platforms like vercel and need shared caching
For small-scale personal deployments with low traffic, Redis may add unnecessary complexity without significant benefits.

Installation Options

Choose the Redis setup method that best fits your deployment:

Redis Cloud Setup

1

Create Redis Cloud Account

  1. Visit Redis Cloud and sign up for a free account
  2. Verify your email address
  3. Complete the account setup process
The free tier provides 30MB of storage, which is sufficient for caching in most Spoo.me deployments.
2

Create a Database

  1. In the Redis Cloud dashboard, click “New Database”
  2. Choose “Fixed” plan (free tier)
  3. Select your preferred cloud provider (AWS recommended)
  4. Choose a region closest to your Spoo.me deployment
  5. Set a database name (e.g., “spoo-me-cache”)
  6. Click “Create Database”
Wait for the database to be created. This usually takes 2-3 minutes.
3

Get Connection Details

Once your database is ready:
  1. Click on your database name
  2. Go to the “Configuration” tab
  3. Copy the “Public endpoint” (something like: redis-12345.c1.us-west-2.cache.amazonaws.com:6379)
  4. Note the “Default user password”
Your Redis URL will be in this format:
redis://default:[email protected]:6379
4

Test Connection

Test your Redis connection:
# Install redis-cli if not already installed
sudo apt install redis-tools  # Ubuntu/Debian
brew install redis            # macOS

# Test connection
redis-cli -u "redis://default:your-password@your-redis-endpoint:6379" ping
You should receive a “PONG” response confirming the connection works.

Configuring Spoo.me with Redis

Environment Variables

Add Redis configuration to your .env file:
# Redis Configuration
REDIS_URI=redis://default:your-password@your-redis-endpoint:6379
REDIS_TTL_SECONDS=3600          # Cache TTL in seconds (1 hour)

Troubleshooting Redis Issues

Symptoms: Cannot connect to Redis serverSolutions:
  • Verify Redis URL format and credentials
  • Check if Redis server is running: redis-cli ping
  • Verify network connectivity and firewall rules
  • Check Redis configuration file for binding issues
  • Ensure Redis service is started: sudo systemctl status redis
Symptoms: Slow Redis responses or high memory usageSolutions:
  • Monitor memory usage: redis-cli info memory
  • Check for slow queries: redis-cli slowlog get
  • Adjust memory limits and eviction policies
  • Consider using Redis clustering for large datasets
  • Optimize your caching strategy and TTL values
Symptoms: Stale data being served from cacheSolutions:
  • Implement cache invalidation on data updates
  • Use appropriate TTL values for different data types
  • Add cache versioning for critical data
  • Implement cache warming strategies
  • Monitor cache hit rates and adjust accordingly
Symptoms: Redis stops accepting writes, memory errorsSolutions:
# Check current memory usage
redis-cli info memory

# Set memory limit and eviction policy
redis-cli config set maxmemory 256mb
redis-cli config set maxmemory-policy allkeys-lru

# Clear specific keys if needed
redis-cli del "pattern:*"

# Monitor memory usage over time
watch -n 1 'redis-cli info memory | grep used_memory_human'
Redis integration is optional but can significantly improve your Spoo.me deployment’s performance and scalability. Start with basic caching and gradually add more advanced features as needed.
I