Redis 클러스터
클러스터를 구축하는 이유
- 일반적으로 웹 사이트 응답 속도를 향상시키기 위해 핫 데이터는 백엔드 데이터베이스에서 직접 읽는 대신 항상 메모리에 저장됩니다.
- Redis는 좋은 캐시 도구입니다. 대규모 웹 사이트 응용 프로그램의 경우 핫 데이터의 양이 많은 경우가 많으며 수십 기가 바이트에서 수백 기가 바이트에 해당하는 것이 정상입니다.
- Redis는 캐시 데이터베이스 역할을합니다. 그러나 데이터 저장소의 일관성을 보장하는 방법은 현재 redis 클러스터를 구축해야합니다. 합리적인 메커니즘을 사용하여 사용자의 정상적인 액세스 요구를 보장합니다.
- redis 클러스터를 사용하면 분산 된 데이터 저장을 보장하는 동시에 데이터 저장의 일관성을 보장 할 수 있으며 고 가용성 메커니즘을 내부적으로 구현하고 서비스 장애의 자동 마이그레이션을 실현합니다.
클러스터 구축 계획
3台主机 3台从机共6台 端口划分7000-7005
전제
우리는 리눅스에서 빌드하고 작업 디렉토리는
/usr/local/src/redis
클러스터 구축
1. 클러스터 폴더 준비
1.1
mkdir cluster
1.2
在cluster文件夹中分别创建7000-7005文件夹
mkdir 7000 7001 7002 7003 7004 7005
2. 구성 파일 복사
기술:
redis 루트 디렉토리의 redis.conf 파일을 cluster / 7000 /에 복사하고 원래 이름으로 저장합니다.
cp redis.conf cluster/7000/
3. 구성 파일 편집
- 1- 로컬 바인딩 IP 주소 기록
- 2- 보호 모드 끄기
- 3- 포트 번호 수정
- 4- 시작 백그라운드 시작
- 5-pid 파일 수정
- 6- 영구 파일 경로 수정
- 7 세트 메모리 최적화 전략
- 8-AOF 모드 끄기
- 9- 클러스터 구성 열기
- 10- 클러스터 구성 파일 열기
- 11- 클러스터 제한 시간 수정
4. 수정 된 구성 파일 복사
기술:
7000 폴더의 redis.conf 파일을 각각 7001-7005에 복사합니다.
[root@localhost cluster]# cp 7000/redis.conf 7001/
[root@localhost cluster]# cp 7000/redis.conf 7002/
[root@localhost cluster]# cp 7000/redis.conf 7003/
[root@localhost cluster]# cp 7000/redis.conf 7004/
[root@localhost cluster]# cp 7000/redis.conf 7005/
5. 일괄 수정
기술:
7001-7005 파일의 7000을 해당 포트 번호의 이름으로 각각 변경하고 수정할 때 화살표 키 사용에주의하십시오.
방법:
vim 명령을 통해 구성 파일을 입력하고 다음 vim 명령을 입력하십시오.
:%s/7000/700/g
구성 파일의 7000을 70001로 변경하고 그 뒤에있는 g는 모두
6. 스크립트를 통해 시작 / 종료 지침 편집
1- 시작 스크립트 만들기
vim start.sh
2- 닫힌 스크립트 편집
vim shutdown.sh
3- redis 노드 시작
sh start.sh
4- redis 노드가 정상적으로 시작되었는지 확인
ps -eg | grep redis
7. redis 클러스터 생성
#5.0版本执行 使用C语言内部管理集群
redis-cli --cluster create --cluster-replicas 1 192.168.35.130:7000 192.168.35.130:7001 192.168.35.130:7002 192.168.35.130:7003 192.168.35.130:7004 192.168.35.130:7005
– 클러스터-복제본 1 : 마스터 1 개와 슬레이브 1 개를 나타냅니다.
클러스터링을 원하는지 물어보고 yes를 입력합니다.
마스터 ---- 마스터
슬레이브 ---- 슬레이브
0-5460 ---- 슬롯 (각 마스터에 할당 된 슬롯)
16384 ---- 총 16384 개 슬롯
테스트 클러스터
명령어 : (redis 입력 후 Enter)
info replication
역할-슬레이브 또는 호스트 마스터 (호스트) 슬레이브 (슬레이브)
포트를 나타냅니다.
SpringBoot는 Redis 클러스터를 통합합니다.
속성 구성 파일 편집
#准备6个redis节点
# redis集群的节点
redis.nodes=192.168.126.131:7000,192.168.126.131:7001,192.168.126.131:7002,192.168.126.131:7003,192.168.126.131:7004,192.168.126.131:7005
구성 클래스 편집
포트 번호와 노드 주소를 가져오고 다음 코드를 작성하십시오.
@Bean //将方法的返回值结果,交给spring容器进行管理.
public JedisCluster jedisCluster(){
Set<HostAndPort> nodesSet= new HashSet<>();
String[] nodeArray=nodes.split(",");
for (String node : nodeArray){
String host = node.split(":")[0];
int port = Integer.parseInt(node.split(":")[1]);
HostAndPort hostAndPort = new HostAndPort(host, port);
nodesSet.add(hostAndPort);
}
return new JedisCluster(nodesSet);
}
CacheAOP 수정