Current Location: Home> Latest Articles> Detailed Guide to Building and Using Redis Cluster with ThinkPHP6 Framework

Detailed Guide to Building and Using Redis Cluster with ThinkPHP6 Framework

gitbox 2025-07-31

Introduction

Redis is an open-source in-memory data structure store widely used in caching, message queues, and distributed locking scenarios. Redis cluster combines multiple nodes to implement data sharding and redundancy, improving system concurrency and fault tolerance. This article introduces how to build and use a Redis cluster with the ThinkPHP6 framework.

Redis Cluster Basics

A Redis cluster consists of multiple nodes, each responsible for storing a portion of the data and communicating with others to ensure data integrity and consistency. The cluster mode achieves even data distribution and provides good scalability and high availability.

Redis Master-Slave Replication Mechanism

Master-slave replication is the core of Redis cluster's data backup and failover. The master node handles write operations, while slave nodes handle read operations and synchronize data from the master. When the master fails, a slave can be promoted to master to ensure uninterrupted service.

Redis Data Sharding

The cluster uses a hash slot algorithm to shard data, with each node managing a range of hash slots. This approach ensures even data distribution across nodes, improving storage and access efficiency.

Building Redis Cluster with ThinkPHP6 Framework

ThinkPHP6, as a lightweight PHP framework, offers rich extension support to easily integrate Redis clusters. The key steps are introduced below.

Installing Redis Extension

<span class="fun">composer require topthink/think-redis</span>

Install the ThinkPHP Redis extension via Composer to enable Redis functionality in your project.

Configuring Redis Cluster

return [
    // ...
    'redis'   => [
        'type'       => 'cluster',  // Cluster mode
        'password'   => '',          // Password (if any)
        'timeout'    => 0,           // Connection timeout
        'persistent' => false,       // Use persistent connection or not
        'clusters'   => [
            [
                'host' => '192.168.1.101',
                'port' => 6379,
            ],
            [
                'host' => '192.168.1.102',
                'port' => 6379,
            ],
            // Add more nodes as needed
        ],
    ],
];

Define multiple Redis nodes’ hosts and ports in the configuration file to complete the cluster setup.

Using Redis Cluster

use think\facade\Redis;

// Set a key-value pair
Redis::set('name', 'Tom');

// Get the value of a key
$name = Redis::get('name');
echo $name;  // Outputs 'Tom'

The Redis class provides static methods to perform read/write operations on the cluster, similar to working with a single Redis instance.

Conclusion

This article explained the basics of Redis clustering and how to implement it with the ThinkPHP6 framework. By installing the Redis extension, configuring cluster nodes, and using Redis APIs, developers can quickly build a high-performance and highly available distributed caching system to meet complex business needs.