Storing an array of data using Redis (from Laravel)

Stefan Bogdanescu

Founder & Senior Architect · 2026-06-29

Laravel Company

Title: Efficiently Storing and Retrieving Arrays of Data Using Redis with Laravel

Body:
Introduction

Working with arrays in your applications is a common occurrence, especially when dealing with collections of data or related entities. In the world of PHP frameworks, Laravel makes use of Redis as one of its caching mechanisms. Redis provides a robust and efficient way to store and retrieve values, including arrays. This blog post will guide you through setting up Redis, using it for array storage in your Laravel application, and answer any potential problems that may arise during this process.

Setting Up Redis with Laravel

Firstly, you need to install the Redis server on your system. Follow the installation instructions provided by Redis (https://redis.io/topics/quickstart) based on your operating system. Once installed, you will also need to change the configuration for Redis in your Laravel project's app/config/database.php file. Add the following lines:

php
'redis' => [
    'default' => [
        'host'     => env('REDIS_HOST', 'localhost'),
        'port'     => env('REDIS_PORT', 6379),
        'password' => env('REDIS_PASSWORD', null),
        'timeout'  => 0,
    ]
],

Laravel Company: Efficiently Storing and Retrieving Arrays of Data Using Redis with Laravel

Using Laravel's Facades

Now that your Redis configuration is set up, you can use Laravel's built-in Redis facade to interact with the server. Remember that when working with arrays, using native PHP functions (like json_encode()) might result in unexpected behavior when storing and retrieving data. Instead, we will utilize the Redis commands directly.

Setting Arrays Using Redis Commands

To set an array in Redis, you can use the redis facade's set, mSet, or sAdd methods:

php
$redis = Redis::connection();
// Set all items individually using set()
$redis->set('name.0', 5);
$redis->set('name.1', 10);

// Use mSet() to set multiple fields in one command
$redis->multi(function () use ($redis) {
    $redis->mSet(['name.0' => 'Test', 'another.1' => 'Another Value']);
});

// Use sAdd() to add items to a sorted set (array of numbers)
$redis->sAdd('numbers', 5);
$redis->sAdd('numbers', 10);

Retrieving Arrays from Redis

To get the values stored in your arrays, you can use Laravel's get, mGet, or sMembers methods:

php
$redis = Redis::connection();
// Get single array items by key
$values = $redis->get('name.0');
$otherValues = $redis->get('another.1');

// Use mGet() to fetch multiple fields at once
$multiValues = $redis->mGet(['name.0', 'another.1']);

// Retrieve sorted set (array of numbers) values using sMembers()
$numbers = $redis->sMembers('numbers');

Conclusion

Using the right combination of Redis commands and Laravel's built-in functionality allows you to effectively store and retrieve arrays within your Laravel application. Remember that it's always better to choose the most efficient data structure for your specific problem and use appropriate methods to handle them in your project. By taking advantage of all the tools at your disposal, you ensure a high-performing, well-optimized application. In this blog post, we have learned how Laravel integrates with Redis, allowing easy storage and retrieval of arrays.