Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon What are the steps to integrate Redis with a Laravel application in Kubernetes


What are the steps to integrate Redis with a Laravel application in Kubernetes


Here are the steps to integrate Redis with a Laravel application in a Kubernetes environment:

1. Deploy Redis in Kubernetes

First, you need to deploy a Redis instance in your Kubernetes cluster. You can do this using a Helm chart or by creating Kubernetes manifests directly.

Using Helm:

bash
# Add the Bitnami Helm repository
helm repo add bitnami https://charts.bitnami.com/bitnami

# Install Redis using the Bitnami chart
helm install redis bitnami/redis

Using Kubernetes manifests:

yaml
# redis-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis:6.2
        ports:
        - containerPort: 6379
        
---        
# redis-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  selector:
    app: redis
  ports:
  - port: 6379

Apply the manifests:

bash
kubectl apply -f redis-deployment.yaml
kubectl apply -f redis-service.yaml

2. Configure Laravel to use Redis

In your Laravel application, update the `config/database.php` file to configure the Redis connection:

php
'redis' => [
    'client' => env('REDIS_CLIENT', 'predis'),
    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
    ],
],

Then, in your `.env` file, set the Redis connection details:


REDIS_HOST=redis
REDIS_PASSWORD=
REDIS_PORT=6379

The `redis` hostname will resolve to the Kubernetes service you created earlier.

3. Use Redis in Laravel

Now you can use Redis in your Laravel application, for example, to store and retrieve data:

php
use Illuminate\Support\Facades\Redis;

Redis::set('name', 'John Doe');
$name = Redis::get('name');

Or to use Redis for caching:

php
use Illuminate\Support\Facades\Cache;

Cache::put('key', 'value', 60); // cache for 60 seconds
$value = Cache::get('key');

4. Deploy Laravel in Kubernetes

Finally, deploy your Laravel application in Kubernetes, making sure to configure the environment variables for the Redis connection details.

By following these steps, you can seamlessly integrate Redis with your Laravel application running in a Kubernetes environment, taking advantage of Redis's speed and scalability for tasks like caching, session management, and real-time data processing.

Citations:
[1] https://laravel-news.com/laravel-session-management-in-kubernetes-clusters
[2] https://chris-vermeulen.com/laravel-in-kubernetes-part-7/
[3] https://aglowiditsolutions.com/blog/laravel-redis/
[4] https://www.squash.io/tutorial-on-laravel-redis-integration-in-php/
[5] https://laravel.com/docs/5.3/redis