Redis Integration with Laravel: Setup, Configuration & Debugging Guide

2025-06-23 20:58:21 - Rao Ashish Kumar

This guide walks you through securely setting up Redis on your Ubuntu VPS, integrating it with your Laravel app, and properly monitoring/debugging it in production.



1. Install Redis on Ubuntu VPS

sudo apt update && sudo apt install redis -y

Ensure Redis is running:

sudo systemctl status redis

Enable auto-start on reboot:

sudo systemctl enable redis

2. Secure the Redis Server

Edit Redis config:

sudo nano /etc/redis/redis.conf

a. Bind to localhost only:

bind 127.0.0.1 ::1

b. Set a strong password:

Uncomment and set:

requirepass Your$ecureRedisP@ss!

c. Set supervision mode:

supervised systemd

Restart Redis:

sudo systemctl restart redis


3. Test Redis CLI

redis-cli
auth Your$ecureRedisP@ss!
ping

Expected output:

PONG

4. Laravel Configuration (.env)

Update your .env file:

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=Your$ecureRedisP@ss!
REDIS_PORT=6379
REDIS_DB=1
REDIS_PREFIX=app_

Apply config changes:

php artisan config:clear
php artisan config:cache

5. Install Redis PHP Extension (If Missing)

Check:

php -m | grep redis

If the extension is missing:

sudo apt install php-redis -y
sudo systemctl restart php8.x-fpm  # Replace with your actual PHP version if needed

6. Test Laravel-Redis Integration

Start Laravel Tinker:

php artisan tinker

Then run:

cache()->put('test_key', 'Redis is working', 600);
cache()->get('test_key');

Expected output:

=> "Redis is working"

7. Debug Redis Internals

View keys:

redis-cli
auth Your$ecureRedisP@ss!
select 1
keys *

Monitor Redis activity:

redis-cli monitor

Check memory stats:

redis-cli
auth Your$ecureRedisP@ss!
info memory

8. Optimize Memory Use

Edit Redis config:

sudo nano /etc/redis/redis.conf

Add or update the following:

maxmemory 256mb
maxmemory-policy allkeys-lru

Restart Redis:

sudo systemctl restart redis

Confirm the new limits:

redis-cli
auth Your$ecureRedisP@ss!
info memory | grep maxmemory

9. Common Troubleshooting Issue Solution NOAUTH Authentication required Run auth <password> in Redis CLI Laravel cache not visible in Redis Check REDIS_DB value and use select <db> in Redis CLI Class Redis not found in Laravel Run sudo apt install php-redis -y and restart your PHP service Laravel still using file/db cache Run php artisan config:clear && php artisan config:cache Final Checks

Laravel should be using Redis correctly.

Check in Tinker:

Cache::getStore()

Expected output:

=> Illuminate\Cache\RedisStore

Check in Redis CLI:

redis-cli
auth Your$ecureRedisP@ss!
select 1
keys *

You should see Laravel keys.

More Posts