Knowledge
Redis connection refused in Laravel
#Laravel
When Laravel uses Redis for cache, sessions or queues, a "Connection refused" error means it cannot reach the Redis server. Usually the service is down or the host is wrong, especially in Docker.
Published by Mark van Eijk on June 23, 2026 · 1 minute read
- About the error
- Why do I see this error
- Solution
- Check Redis is running
- Verify the connection settings
- Docker: use the service name
- Clear cached config
About the error
Predis\Connection\ConnectionException: Connection refused [tcp://127.0.0.1:6379]
(Or the phpredis equivalent.) Laravel tried to open a connection to Redis and nothing accepted it at that address. This is different from an authentication or wrong-database error, the connection never got established at all.
Why do I see this error
- Redis isn't running.
REDIS_HOSTorREDIS_PORTis wrong.- In Docker,
127.0.0.1from inside the app container points at the container itself, not the Redis container. - Redis requires a password (
requirepass) that you haven't set in.env.
Solution
Check Redis is running
systemctl status redis-server
redis-cli ping # should reply PONG
If ping replies PONG, the server is up and the problem is how Laravel addresses it.
Verify the connection settings
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=null
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
Docker: use the service name
Inside a container, 127.0.0.1 is the container, not the host. Set REDIS_HOST to the service name from your docker-compose.yml:
REDIS_HOST=redis
services:
redis:
image: redis:7
ports:
- "6379:6379"
Clear cached config
If you changed .env but Laravel still connects to the old address, the config is cached:
php artisan config:clear
See environment variables in Laravel for how these values are loaded, and SQLSTATE[HY000] [2002] Connection refused for the same class of "can't reach the service" problem with MySQL.
Subscribe to our newsletter
Do you want to receive regular updates with fresh and exclusive content to learn more about web development, hosting, security and performance? Subscribe now!
Related articles
How to use different PHP versions with Laravel Valet
When Laravel uses Redis for cache, sessions or queues, a "Connection refused" error means it cannot reach the Redis server. Usually the service is down or the host is wrong, especially in Docker.
Disable cookies in Laravel
When Laravel uses Redis for cache, sessions or queues, a "Connection refused" error means it cannot reach the Redis server. Usually the service is down or the host is wrong, especially in Docker.