Redis Sentinel 사용 가능 한 설정 을 위 한 상세 한 절차

일반적인 상황 에서 yum 에 redis 를 설치 한 시작 디 렉 터 리 는:/usr/sbin 입 니 다.디 렉 터 리 설정 은/etc/redis/디 렉 터 리 에 기본 redis.conf 와 redis-sentinel.conf 가 있 습 니 다.
redis 높 은 사용 가능 한 설정:
보초병 설정(redis-sentinel),내 모든 프로필 은/etc/redis-cluster/디 렉 터 리 에 놓 여 있 습 니 다.
1,redis-sentinel 생 성26379.conf,주요 내용 은 다음 과 같다.

#    
port 26379
daemonize yes
logfile "/var/log/redis/sentinel_26379.log"
protected-mode no
dir /var/lib/redis-cluster/sentinel

#    
sentinel monitor mymaster 127.0.0.1 6379 1 (  master      )
#sentinel auth-pass mymaster passwd
sentinel parallel-syncs mymaster 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000

2,redis-sentinel 생 성26380.conf,주요 내용 은 다음 과 같 습 니 다.

#    
port 26380
daemonize yes
logfile "/var/log/redis/sentinel_26380.log"
protected-mode no
dir /var/lib/redis-cluster/sentinel
#    
sentinel monitor mymaster 127.0.0.1 6379 1 (  master      )
#sentinel auth-pass mymaster passwd
sentinel parallel-syncs mymaster 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000
sentinel monitor 의 매개 변수 성명 의 의 미 는 다음 과 같다.
sentinel monitor [master-group-name] [ip] [port] [quorum]
첫 번 째 줄 은 Redis 에 게 master 라 는 주 소 를 알려 주 는 데 사 용 됩 니 다.주 소 는 127.0.0.1 이 고 포트 는 6379 이 며 법정 인원 은 2 입 니 다.매개 매개 변 수 는 이해 하기 쉽 지만 quorum 은 설명 이 필요 합 니 다.
1.quorum 은 Sentinel 이 master 가 도착 할 수 있 는 지 협상 하여 동의 해 야 하 는 수량 입 니 다.진정한 슬 레이 브 를 실패 로 표시 하기 위해 서 는 고장 이전 프로 세 스 를 시작 해 야 합 니까?
2.어쨌든 quorum 은 고장 을 검사 하 는 데 만 사 용 됩 니 다.고장 이전 을 실제 수행 하기 위해 서 는 Sentinel 이 leader 를 선출 하고 권한 을 부여 해 야 한다.대부분의 Sentinel 프로 세 스 선거 에서 만 발생 한다.
다른 옵션 은 보통 이런 형식 입 니 다.
다른 옵션 은 보통 이런 형식 입 니 다:sentinel[optionname] [master_name] [option_value]
1.down-after-milliseconds-하나의 인 스 턴 스 가 도착 할 수 없습니다(ping 이 통 하지 않 거나 오류 가 있 음).Sentinel 은 다운 의 밀리초 라 고 생각 하기 시 작 했 습 니 다.
2.parallel-syncs-고장 이전 후 새 master 를 사용 하 는 slave 의 수 를 다시 설정 할 수 있 습 니 다.숫자 가 낮 을 수록 더 많은 시간 이 고장 으로 전 이 됩 니 다.그러나 slaves 가 서비스 오래된 데이터 로 설정 되면 모든 slave 가 동시에 master 를 동기 화 하 는 것 을 원 하지 않 을 수도 있 습 니 다.마스터 에서 대량 데 이 터 를 불 러 오 는 것 을 중단 할 때 슬 레이 브 가 차단 되 지 않 기 때 문 입 니 다.설정 옵션 을 1 로 설정 하면 매번 하나의 slave 만 도착 할 수 없다 고 확신 합 니 다.
3.redis-master-6379.conf 를 만 듭 니 다.master 설정 은 기본 파일 과 차이 가 없습니다.주요 내용 은 다음 과 같 습 니 다.

daemonize yes
protected-mode no
port 6379
#requirepass "passwd"
#masterauth "passwd"
4.redis-slave-6380.conf 를 만 들 고 주요 내용 은 다음 과 같 습 니 다.

protected-mode no
port 6380
daemonize yes
#requirepass "passwd"
#masterauth "passwd"
slaveof 127.0.0.1 6379
5.이제 시동 을 걸 수 있 습 니 다.

cd /usr/sbin/
#  master redis
redis-server /etc/redis-cluster/redis-master-6379.conf
#  slave redis
redis-server /etc/redis-cluster/redis-slave-6380.conf
#  redis-sentinel
redis-sentinel /etc/redis-cluster/redis-sentinel_26379.conf
redis-sentinel /etc/redis-cluster/redis-sentinel_26380.conf
우 리 는/var/log/redis/sentinel26379.log 디 렉 터 리 에서 응답 로 그 를 봅 니 다.
6.spring boot 통합 redis-sentinel
컴퓨터 설정 설명

#spring.redis.host=127.0.0.1
# Redis       
#spring.redis.port=6379
사용 가능 한 설정 증가

#    redis server  
spring.redis.sentinel.master=mymaster
#       
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380
코드 에서 RedisUtils 에서 직접 사용 할 수 있 습 니 다.예 를 들 어:

@Autowired
private RedisTemplate redisTemplate;
뒤에 컨트롤 러 에서 RedisUtils 로 직접 정의 할 수 있 는 방법 입 니 다.
마지막 으로 테스트 해 볼 게 요.

구체 적 인 RedisUtils 코드 는 아래 의 주 소 를 보십시오https://coding.net/u/evening/p/development-tool-summary/git/blob/master/RedisUtils
현재 배치 에 성 공 했 습 니 다.redis-sentinel 이나 redis 테스트 를 끊 으 면 자동 으로 전환 할 수 있 습 니 다.
이 과정 도 많은 구 덩이 를 만 났 으 니 정리 해 보 자.
1:모든 설정 이 완료 되면 프로젝트 보고 시작:모든 sentinels down,my master 가 실행 중인 위 치 를 결정 할 수 없습니다...
포트 가 열 리 지 않 았 거나 redis-sentinel 파일 에 protected-mode no 를 추가 하지 않 았 기 때 문 일 수 있 습 니 다.
2:spring boot 를 통합 한 후 redis 메모리 값 은 여러 개의 xacxedx00x05tx00x0c 물건 을 저장 합 니 다.
이것 은 기본 직렬 화 를 사 용 했 기 때 문 입 니 다.잭 슨 2Json RedisSerializer 를 사용 하면 됩 니 다.위의 연결 주 소 를 참조 하 십시오.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기