# Source: https://upstash.com/docs/vector/sdks/php/laravel.md

# Source: https://upstash.com/docs/redis/quickstarts/laravel.md

> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel

## 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:

```shell  theme={"system"}
composer global require laravel/installer
```

After installation, create your Laravel project:

```shell  theme={"system"}
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:

```shell  theme={"system"}
composer create-project laravel/laravel example-app
cd example-app
```

## Database Setup

Create a Redis database using [Upstash Console](https://console.upstash.com). Go to the **Connect to your database** section and click on Laravel. Copy those values into your .env file:

```shell .env theme={"system"}
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:

```php  theme={"system"}
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:

```shell .env theme={"system"}
CACHE_STORE="redis"
REDIS_CACHE_DB="0"
```

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

```php  theme={"system"}
Cache::put('key', 'value', now()->addMinutes(10));
$value = Cache::get('key');
```

For more advanced cache configurations, see the [Laravel Cache Documentation](https://laravel.com/docs/cache).

### Session

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

```shell .env theme={"system"}
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:

```shell .env theme={"system"}
QUEUE_CONNECTION="redis"
```

For detailed queue configurations and usage, refer to the [Laravel Queues Documentation](https://laravel.com/docs/queues).