Redis는 오픈 소스 메모리 데이터 구조 스토리지 시스템으로 캐시, 메시지 대기열 및 분산 잠금과 같은 시나리오에서 널리 사용됩니다. Redis Cluster는 여러 노드와 협력하여 데이터 샤딩 및 중복 백업을 실현하여 시스템의 동시 처리 기능 및 결함 공차를 향상시킵니다. 이 기사는 ThinkPHP6 프레임 워크를 사용하여 Redis 클러스터를 구축하고 사용하는 방법을 소개합니다.
Redis 클러스터는 여러 노드로 구성되며 각 노드는 데이터의 일부를 저장하고 노드 간 통신을 통해 데이터의 무결성과 일관성을 보장하는 데 도움이됩니다. 클러스터 모드에서는 데이터가 균등하게 분산되며 시스템은 확장 성과 고 가용성이 우수합니다.
마스터 슬레이브 복제는 데이터 백업 및 장애 조치를 구현하기 위해 Redis 클러스터의 핵심입니다. 마스터 노드는 작문 작업을 담당하며 슬레이브 노드는 작업을 읽고 마스터 노드 데이터를 동기화 할 책임이 있습니다. 마스터 노드가 실패하면 슬레이브 노드를 마스터 노드로 홍보하여 서비스가 중단되지 않도록 할 수 있습니다.
이 클러스터는 해시 슬롯 알고리즘을 통해 데이터를 삭제하고 각 노드는 특정 해시 슬롯 범위를 관리합니다. 이러한 방식으로 데이터는 다른 노드간에 고르게 분포되며 스토리지 및 액세스 효율이 향상됩니다.
가벼운 PHP 프레임 워크 인 ThinkPhP6은 REDIS 클러스터의 통합을 용이하게하기 위해 풍부한 확장 지원을 제공합니다. 주요 단계는 아래에 설명되어 있습니다.
<span class="fun">작곡가는 Topthink/Think-Redis가 필요합니다</span>
작곡가를 통해 ThinkPhp의 Redis 확장을 설치하면 완료 후 프로젝트에서 Redis 기능을 사용할 수 있습니다.
return [
// ...
'redis' => [
'type' => 'cluster', // 클러스터 모드
'password' => '', // 비밀번호(있다면)
'timeout' => 0, // 연결 시간 초과
'persistent' => false, // 지속적인 연결을 사용할지 여부
'clusters' => [
[
'host' => '192.168.1.101',
'port' => 6379,
],
[
'host' => '192.168.1.102',
'port' => 6379,
],
// 실제 상황에 따라 더 많은 노드를 추가하십시오
],
],
];
클러스터 정보 구성을 완료하기 위해 구성 파일의 여러 redis 노드의 호스트 및 포트를 정의하십시오.
use think\facade\Redis;
// 키 값을 설정합니다
Redis::set('name', 'Tom');
// 핵심 가치를 얻으십시오
$name = Redis::get('name');
echo $name; // 산출 'Tom'
Redis 클래스에서 제공하는 정적 메소드를 사용하면 Redis 클러스터를 쉽게 읽고 쓸 수 있으며 사용 방법은 기본적으로 단일 노드 Redis와 동일합니다.
이 기사는 ThinkPhp6 프레임 워크에 중점을두고 Redis 클러스터의 기본 지식 및 구현 단계를 자세히 소개합니다. Redis 확장 기능을 설치하고, 클러스터 노드 정보를 구성하고, Redis 인터페이스를 호출함으로써 개발자는 복잡한 비즈니스 요구를 충족시키기 위해 고성능 및 고도로 사용 가능한 분산 캐시 시스템을 신속하게 구축 할 수 있습니다.