Skip to main content
Pterodactyl Panel uses caching to improve performance and queues for asynchronous job processing. Redis is the recommended backend for both.

Redis Configuration

Basic Redis Setup

.env
string
default:"127.0.0.1"
Redis server hostname or IP address.
integer
default:"6379"
Redis server port.
string
Redis authentication password. Use null for no authentication.
Always set a strong password for Redis in production environments.
string
default:"predis"
Redis client library. Options:
  • predis - Pure PHP implementation (default)
  • phpredis - PHP extension (faster, requires installation)

Advanced Redis Configuration

.env
string
default:"tcp"
Connection scheme. Options: tcp, unix
string
Path to Unix socket when using REDIS_SCHEME=unix. Provides better performance for local Redis.
string
Redis username for ACL authentication (Redis 6.0+).
integer
default:"0"
Redis database number for general cache and queue data.
integer
default:"1"
Redis database number for session storage (when using Redis sessions).

Redis Clustering

.env
string
default:"redis"
Redis cluster mode. Options: redis, predis
string
Prefix for all Redis keys. Automatically generated from APP_NAME if not set.

Redis SSL/TLS

For secure Redis connections:
.env
SSL configuration only works with the phpredis client.

Cache Configuration

Cache Driver Selection

.env
string
default:"redis"
Cache storage driver. Options:
  • redis - Redis (recommended)
  • file - Filesystem storage
  • database - Database storage
  • memcached - Memcached
  • array - In-memory (testing only)
string
Prefix for cache keys. Auto-generated from APP_NAME if not set.

File Cache

For development or small deployments:
.env
Cache files are stored in storage/framework/cache/data/.

Database Cache

Store cache in the database:
.env
Database caching is slower than Redis but doesn’t require additional services.

Memcached Configuration

.env

Redis Cache Connection

.env
string
default:"default"
Redis connection to use for caching.
string
default:"default"
Redis connection to use for cache locks.

Queue Configuration

Queue Driver Selection

.env
string
default:"redis"
Queue backend driver. Options:
  • redis - Redis (recommended)
  • database - Database storage
  • sync - Synchronous (no queuing, development only)
  • beanstalkd - Beanstalkd queue
  • sqs - Amazon SQS

Redis Queue Configuration

.env
string
default:"default"
Redis connection to use for queues.
string
default:"standard"
Default queue name.
integer
default:"90"
Seconds after which a job is retried if a worker dies.

Database Queue Configuration

.env
Database queues require the jobs and failed_jobs tables. Run migrations to create them.

Failed Jobs Configuration

.env
string
default:"database-uuids"
Storage for failed jobs. Options:
  • database-uuids - Database with UUID identifiers
  • file - Filesystem storage
  • null - Discard failed jobs

Session Storage

Session Driver Selection

.env
string
default:"redis"
Session storage driver. Options:
  • redis - Redis (recommended)
  • database - Database storage
  • file - Filesystem storage
  • cookie - Browser cookies
integer
default:"720"
Session lifetime in minutes (12 hours by default).

Redis Session Configuration

.env
Redis sessions use the sessions connection, which points to REDIS_DATABASE_SESSIONS.

Database Session Configuration

.env

Queue Worker Setup

Running Queue Workers

Queue workers process background jobs. Run them with:

Supervisor Configuration

Use Supervisor to keep queue workers running:
/etc/supervisor/conf.d/pterodactyl-worker.conf
Reload Supervisor after creating the config:

Systemd Service

Alternatively, use systemd:
/etc/systemd/system/pterodactyl-worker.service
Enable and start the service:

Worker Commands

Installing Redis

Securing Redis

Edit /etc/redis/redis.conf:
/etc/redis/redis.conf
Restart Redis:

Installing PHPRedis Extension

For better performance, install the phpredis extension:
Update your .env:
.env

Clearing Cache

Performance Optimization

Cache Configuration

In production, cache configuration files:
After caching, changes to .env won’t take effect until you run php artisan config:clear.

Multiple Queue Workers

Run multiple workers for better throughput:
Or run workers for different queues:

Troubleshooting

Solutions:
Possible causes:
  • Queue workers not running
  • Worker died/crashed
  • Queue connection misconfigured
Solutions:
Possible causes:
  • Redis not running
  • Session lifetime too short
  • Different Redis database
Solutions:
Solutions:

Monitoring

Redis Monitoring

Queue Monitoring

Best Practices

Use Redis

Redis provides the best performance for cache, queues, and sessions.

Run Queue Workers

Always run queue workers in production for background job processing.

Monitor Workers

Use Supervisor or systemd to keep queue workers running and auto-restart on failure.

Secure Redis

Always set a password and bind to localhost when possible.