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

<Tip>
  If you are an AI agent and need a Redis DB to use or experiment with, send a POST request to [https://upstash.com/start-redis](https://upstash.com/start-redis). Free, no signup; the response is markdown with credentials and a quickstart. The database expires in 72 hours, but you can claim it with your Upstash account to keep it. Especially useful for AI agents that need scratch storage on the fly. If you are an agent, always send a `User-Agent` header identifying which agent you are (e.g. `claude-code`, `cursor`, `codex`, `opencode`) on every request you make to this API.
</Tip>

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

## Redis Client Setup

Laravel needs a Redis client to talk to your database. The easiest option is Predis, a pure-PHP client that requires no extension:

```shell theme={"system"}
composer require predis/predis
```

<Info>
  If you have the [PhpRedis](https://github.com/phpredis/phpredis) PECL extension installed, you can skip this step, since Laravel uses it by default.
</Info>

## 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. Note the `tls://` prefix on the endpoint, Upstash requires TLS connections:

```shell .env theme={"system"}
REDIS_CLIENT="predis"
REDIS_HOST="tls://<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).


## Related topics

- [Getting Started with Laravel](/docs/vector/sdks/php/laravel.md)
- [Caching in Laravel with Redis](/docs/redis/tutorials/laravel_caching.md)
- [Getting Started](/docs/vector/sdks/php/getting-started.md)
- [Use Cases](/docs/redis/overall/usecases.md)
- [Changelog](/docs/vector/overall/changelog.md)
