Overview
When running multiple proxy instances (BungeeCord, Velocity, etc.), Redis enables automatic synchronization of maintenance status and whitelisted players across all connected proxies. This eliminates the need to manually update each proxy when making changes.Why Use Redis?
Without Redis, each proxy instance maintains its own independent state:- Enabling maintenance on one proxy doesn’t affect others
- Whitelisted players must be added to each proxy separately
- Server-specific maintenance settings aren’t synchronized
- All proxies share the same maintenance status (global and per-server)
- Whitelist changes are instantly synchronized across all proxies
- Configuration changes propagate automatically
Redis Configuration
Enables Redis synchronization across multiple proxy instances.
Note the typo in the config key:
enables instead of enabled. This is the actual key used in config.yml.Redis connection URI. Must be properly formatted according to the Redis URI specification.
Configuration Example
URI Format
The Redis URI follows this format:URI Components
| Component | Description | Required | Example |
|---|---|---|---|
| Protocol | redis:// for standard connection, rediss:// for SSL/TLS | Yes | redis:// or rediss:// |
| Username | Redis ACL username (Redis 6.0+) | No | myuser |
| Password | Redis authentication password | No | mypassword |
| Host | Redis server hostname or IP address | Yes | localhost, redis.example.com |
| Port | Redis server port | No (defaults to 6379) | 6379 |
| Database | Redis database number | No (defaults to 0) | 0, 1, 2 |
URI Examples
Basic Local Connection
Password-Protected Redis
SSL/TLS Connection with Authentication
Remote Redis with Custom Database
Redis 6.0+ with ACL Username
Setting Up Redis
1. Install Redis
Ubuntu/Debian
CentOS/RHEL
Docker
2. Secure Redis
Edit your Redis configuration file (usually/etc/redis/redis.conf):
3. Configure Network Access
If your proxies are on different servers, configure firewall rules to allow Redis access:4. Update Plugin Configuration
On each proxy instance, update the configuration:5. Reload Plugin
Reload the plugin on each proxy:What Gets Synchronized
When Redis is enabled, the following data is synchronized across all proxy instances:Global Maintenance Status
Server-Specific Maintenance
Whitelisted Players
Timer State
Active timers are synchronized:Multi-Proxy Setup Example
Let’s say you have 3 proxy instances:- Proxy 1:
proxy1.example.com(10.0.0.10) - Proxy 2:
proxy2.example.com(10.0.0.11) - Proxy 3:
proxy3.example.com(10.0.0.12) - Redis Server:
redis.example.com(10.0.0.100)
Redis Configuration
On the Redis server:Plugin Configuration
On all three proxies, use the same configuration:Workflow
-
Enable maintenance on Proxy 1:
- All three proxies instantly enter maintenance mode
-
Add a whitelisted player on Proxy 2:
- BuilderName can join through any of the three proxies
-
Disable maintenance on Proxy 3:
- All three proxies exit maintenance mode
Troubleshooting
Connection Issues
If proxies cannot connect to Redis:-
Verify Redis is running:
-
Test connectivity:
-
Check firewall rules:
- Review plugin logs for Redis connection errors
Authentication Errors
If you see authentication errors:- Verify the password in your URI matches Redis configuration
- Check for special characters that need URL encoding
- Ensure the Redis user has appropriate permissions (Redis 6.0+)
Synchronization Delays
If changes don’t propagate instantly:- Check network latency between proxies and Redis
- Verify all proxies are connected to the same Redis instance
- Ensure all proxies have Redis enabled in their config
- Try reloading the plugin:
/maintenance reload
SSL/TLS Issues
If usingrediss:// and experiencing connection problems:
- Verify Redis is configured with SSL/TLS support
- Check SSL certificate validity
- Ensure the Java version supports the SSL/TLS version used by Redis
- Try connecting without SSL first to isolate the issue
Performance Considerations
- Redis synchronization adds minimal latency (typically less than 10ms on LAN)
- The plugin uses pub/sub for real-time updates
- Whitelist changes are batched to reduce network traffic
- Redis memory usage is negligible (typically less than 1MB)
Security Best Practices
- Always use authentication: Set a strong
requirepassin Redis - Use SSL/TLS: Enable
rediss://for production environments - Restrict network access: Use firewall rules to limit connections
- Use Redis ACLs: Create dedicated users with minimal permissions (Redis 6.0+)
- Regular updates: Keep Redis updated to the latest stable version
- Monitor access: Enable Redis logging and monitor for unauthorized access