Project Setup

To get started, let’s create a new Laravel application. If you don’t have the Laravel CLI installed globally, install it first using Composer:

composer global require laravel/installer

After installation, create your Laravel project:

laravel new example-app
cd example-app

Alternatively, if you don’t want to install the Laravel CLI, you can create a project using Composer:

composer create-project laravel/laravel example-app
cd example-app

Database Setup

Create a Redis database using Upstash Console. Go to the Connect to your database section and click on Laravel. Copy those values into your .env file:

.env
REDIS_HOST="<YOUR_ENDPOINT>"
REDIS_PORT=6379
REDIS_PASSWORD="<YOUR_PASSWORD>"

Framework Integration

Upstash Redis integrates seamlessly with Laravel, allowing it to be used as a driver for multiple framework components.

Interact with Redis

The Redis Facade in Laravel provides a convenient way to interact with your Redis database. For example:

use Illuminate\Support\Facades\Redis;

// Storing a value in Redis
Redis::set('key', 'value');

// Retrieving a value from Redis
$value = Redis::get('key');

This can be particularly useful for simple caching or temporary data storage.

Cache

To use Upstash Redis as your caching driver, update the CACHE_STORE in your .env file:

.env
CACHE_STORE="redis"
REDIS_CACHE_DB="0"

With this configuration, you can use Laravel’s caching functions, such as:

Cache::put('key', 'value', now()->addMinutes(10));
$value = Cache::get('key');

For more advanced cache configurations, see the Laravel Cache Documentation.

Session

Laravel can store session data in Upstash Redis. To enable this, set the SESSION_DRIVER in your .env file:

.env
SESSION_DRIVER="redis"

This ensures that session data is stored in your Upstash Redis database, providing fast and reliable session management.

Queue

Upstash Redis can also serve as a driver for Laravel’s queue system, enabling job processing. To configure this, update the QUEUE_CONNECTION in your .env file:

.env
QUEUE_CONNECTION="redis"

For detailed queue configurations and usage, refer to the Laravel Queues Documentation.