자바 의 Redis 군집 은 확장 과 높 은 가용성 을 실현 합 니 다.
레 디 스 군집 이란 무엇 입 니까?
신축성 과 가용성 은 모든 기업 급 데이터 뱅 크 의 가장 중요 한 품질 이다.
데이터베이스 가 소모 할 최대 자원 의 양 을 정확하게 예측 할 수 있다. 이것 은 매우 심상 치 않 기 때문에 수요 가 매우 높 은 시기 에 대응 하기 위해 서 는 신축성 이 있어 야 한다.그러나 신축성 은 가용성 이 없 는 상태 에서 쓸모 가 없 기 때문에 사용자 가 필요 할 때 데이터베이스 에 접근 할 수 있 는 정 보 를 확보 했다.
Redis 는 비 관계 키 데이터 베 이 스 를 실현 하 는 메모리 데이터 구조 저장 소 입 니 다.그러나 레 디 스 의 준 시스템 설 치 는 즉각 최고의 성능 을 제공 하지 않 았 다.
Redis 배치 의 신축성 과 가용성 을 높이 기 위해 Redis Cluster 를 사용 할 수 있 습 니 다. 이것 은 서로 다른 Redis 노드 사이 에서 자동 으로 데 이 터 를 나 누 는 방법 입 니 다.Redis Cluster 는 큰 Redis 데이터 베 이 스 를 작은 수평 파 티 션 으로 분해 하 는데 이 파 티 션 을 분 편 이 라 고 부 르 며 각각 단독 서버 에 저장 합 니 다.
이 때문에 Redis 데이터 베 이 스 는 더 많은 요 구 를 수용 할 수 있 기 때문에 더욱 큰 신축성 을 가진다.그리고 클 러 스 터 의 일부 노드 가 고장 나 더 라 도 데이터 베 이 스 는 계속 운행 할 수 있 기 때문에 가용성 이 향상 된다.
3.0 버 전에 Redis Cluster 는 비동기 복 제 를 사용 합 니 다.실제로 레 디 스 클 러 스 터 의 메 인 서버 가 서버 에서 쓰기 동작 을 보 내기 전에 충돌 하면 이 쓰기 동작 을 받 지 못 한 하 나 를 장치 에서 주 서버 로 업그레이드 시 켜 쓰기 동작 을 잃 어 버 릴 수 있다 는 뜻 이다.
3.0 버 전부터 레 디 스 클 러 스 터 는 현재 클 라 이언 트 가 모든 쓰기 명령 을 성공 적 으로 완료 할 때 까지 WAIT 명령 형식의 동기 복제 옵션 도 갖 추고 있다.비록 이것 은 강력 한 일치 성 을 보장 하기 에는 부족 하지만, 이것 은 확실히 데이터 전송 과정 을 더욱 안전하게 한다.
Redis 군집 을 어떻게 실행 합 니까?
Redis Cluster 를 시작 하고 실행 할 수 있 는 두 가지 방법 이 있 습 니 다. 간편 한 방법 과 어 려 운 방법 입 니 다.
간단 한 방법 은
create-cluster
bash 스 크 립 트 를 사용 하 는 것 과 관련 이 있 습 니 다. Redis 가 설치 한 utils/create-cluster
디 렉 터 리 에서 이 스 크 립 트 를 찾 을 수 있 습 니 다.다음 두 명령 은 6 개의 노드, 3 개의 메 인 노드 와 3 개의 노드 를 가 진 기본 클 러 스 터 를 만 들 것 입 니 다.create-cluster start
create-cluster create
클 러 스 터 를 만 든 후 대화 할 수 있 습 니 다.기본 적 인 상황 에서 클 러 스 터 의 첫 번 째 노드 는 포트 300001 부터 시작 합 니 다.다음 명령 을 사용 하여 클 러 스 터 를 정지 합 니 다:
create-cluster stop
Redis Cluster 를 실행 하 는 어 려 운 방법 은 클 러 스 터 에 자신의 프로필 을 설정 하 는 것 을 포함한다.Redis Cluster 의 모든 인 스 턴 스 는 적어도 세 개의 메 인 노드 를 포함해 야 합 니 다.
다음은 단일 노드 의 예제 설정 파일 입 니 다.
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
말 그대로 클 러 스 터 를 사용 하 는 옵션 은 클 러 스 터 모드 를 사용 합 니 다.
cluster-config-file
옵션 은 주어진 노드 의 프로필 경 로 를 포함 합 니 다.세 개의 메 인 노드 와 세 개의 노드 를 가 진 테스트 Redis 군집 인 스 턴 스 를 만 들 려 면 터미널 에서 다음 명령 을 실행 하 십시오.
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
이 여섯 개의 디 렉 터 리 에 있 는 모든 디 렉 터 리 에서 위 에 제 시 된 예제 프로필 을 사용 하여 redis. conf 프로필 을 만 듭 니 다.그 다음 에 redis - server 실행 가능 한 파일 을 cluster - test 디 렉 터 리 에 복사 하고 터미널 의 6 개의 서로 다른 옵션 에서 6 개의 서로 다른 노드 를 시작 합 니 다.
자바 에 Redis 클 러 스 터 연결
기본 레 디 스 설치 와 마찬가지 로 레 디 스 클 러 스 터 는 자바 프로 그래 밍 언어 를 즉시 사용 할 수 없습니다.좋 은 소식 은 Redis Cluster 와 자바 를 쉽게 사용 할 수 있 는 프레임 워 크 가 있다 는 것 이다.
Redisson 은 Redis 의 자바 클 라 이언 트 로 자바 에서 흔히 볼 수 있 는 구 조 를 포함 하고 각종 대상, 집합, 자물쇠 와 서 비 스 를 포함한다.Redisson 은 이러한 구 조 를 분포 식 으로 재 구성 하기 때문에 여러 응용 프로그램 과 서버 간 에 공유 하여 Redis Cluster 등 도구 와 함께 사용 할 수 있 습 니 다.
다음 코드 는 Redis 군집 과 Redis 군집 의 용법 을 보 여 줍 니 다.
package redis.demo;
import org.redisson.Redisson;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
/**
* Redis Sentinel Java example
*
*/
public class Application
{
public static void main( String[] args )
{
Config config = new Config();
config.useClusterServers()
.addNodeAddress("redis://127.0.0.1:6379", "redis://127.0.0.1:6380");
RedissonClient redisson = Redisson.create(config);
// operations with Redis based Lock
// implements java.util.concurrent.locks.Lock
RLock lock = redisson.getLock("simpleLock");
lock.lock();
try {
// do some actions
} finally {
lock.unlock();
}
// operations with Redis based Map
// implements java.util.concurrent.ConcurrentMap
RMap map = redisson.getMap("simpleMap");
map.put("mapKey", "This is a map value");
String mapValue = map.get("mapKey");
System.out.println("stored map value: " + mapValue);
redisson.shutdown();
}
}
Redisson 은 오픈 소스 클 라 이언 트 로 자바 프로그래머 가 최소 의 압력 과 복잡성 으로 Redis 를 사용 할 수 있 도록 개발 과정 을 크게 간소화 하고 더욱 익숙 하 게 만 들 었 다.
읽 어 주 셔 서 감사합니다!
댓 글 이나 개인 편 지 를 더욱 깊이 연구 하고 더 많은 자바 학습 자 료 를 공유 할 수 있 습 니 다!
실 을 뽑 아 고 치 를 벗 기 고 그 일 들 을 상세히 말 하 다. [우 예 과]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.