일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 기술면접공부
- 기술공부
- Flutter
- nestjs스터디
- 자바공부
- JPA예제
- JPA공부
- nestjs공부
- Kafka
- 알고리즘공부
- 스프링부트공부
- 스프링
- JPA
- JPA 공부
- 스프링 공부
- 코테공부
- JPA스터디
- DDD
- Axon framework
- 플러터 개발
- 카프카
- querydsl
- 프로그래머스
- 자료구조공부
- 스프링공부
- 스프링부트
- nestjs
- K8S
- 플러터 공부
- 코테준비
- Today
- Total
목록Develop/[Redis] (8)
DevBoi
레디스는 메시지를 주고 받는 기능을 제공한다. 따로 메시지를 보관하지 않고, 채널을 구독한, 구독자에게 제공하는것이다. publish, subscribe 의 약자이다. 클러스터링 될때 서로 다른 노드에서 서로 간의 데이터 통신이 필요하면 해당방식으로 데이터를 전달한다.
Redis의 영속성이라고 해석되며 프로그램이 종료되어도 사라지지 않는 데이터 특성이다. Redis는 이 영속성을 어떻게 지킬까? RDB 영속성은 명시된 간격 마다 dateset의 해당 시점의 스냅샷을 수행한다. AOF는 서버로 수신된 모든 쓰기작업을 기록하고, 서버 재시작시에, 수행되서 원래의 데이터셋을 재구축한다. 동일한 인스턴스에서 AOF와 RDB를 결합해서 사용할 수 있다. 자식 프로세스가 forking 하기 때문에 메모리를 2배를 사용할수 있지만, 부모 인스턴스가 디스크I/O를 수행하지 않아 AOF에 비해서 다 빠르게 재시작된다. 일정시간마다 스냅샷이 생성되기 떄문에, 예외 종료시에 데이터를 잃어버릴 수 있다. redis 에서 데이터를 저장하는 방법으로 snapshotting 방식과 AOF방식이 ..
1) Sentinel 기능 모니터링 : Master/Salve 제대로 동작하는지 지속적으로 감시 자동 장애 조치 : 하단 알림 : failover되었을때 pub/sub으로 client에게 알리거나, shell script로 이메일이나 sms를 보낼 수 있다. 동작 방식 -Sentinel 인스턴스 과반수 이상이 Master 장애를 감지하면 Slave 중 하나를 Master로 승격, 기존의 Master는 Slave로 강등 시킨다. 과반수 이상은, 단순 sentinel의 네트워크 문제로 해당 이슈가 발생할 수 있기 때문이다. failOver 감지 방법 SDown : Subjectively down (주관적 다운) -seninal에서 주기적으로 Master에게 보내는 Ping과 info응답이 3초 동안, 혹은 ..
TTL이란 key가 언제까지 살아있을것인가 하는것이다
Redis가 사용하는 메모리가 maxMemroy에 지정한 크기보다 커지면 Redis는 사용자가 지정한 Eviction 정책에 따라 저장되어있는 데이터를 제거한 후, 새로운 데이터를 저장한다. 1.noevitcion 꽉 차면 그냥 에러 발생 2.LRU 최근 사용빈도가 작은 걸 삭제, LRU는 많은 메모리가 필요하여, maxmemory-samples 옵션에서 지정한 수의 키로 샘플링하여 LRU 알고리즘의 근사치를 계산한다. 3.Random 무작위 삭제 4.TTL TTL이 짧은 데이터 부터 삭제한다. 5.LFU 최근 사용된 데이터라도 사용수가 적으면 삭제된다.
1. String 일반적인 문자열로 최대 512Mb 길이까지 지원 Text 문자열 뿐만 아니라 Integer와 같은 숫자나, JPEG와 같은 바이너리 파일까지 지원가능 2. Set 3.Sorted Set Set에 score라는 필드가 추가된 데이터 타입, 해당 구조에서 score기준으로 오름차순 내부정렬되고 범위에 따른 쿼리나, top rank에 따른 쿼리등이 가능하다 4. Hashes (field/string value 쌍으로 이루어진 테이블을 저장하는 데이터 타입) 5. List
장점 1. Key-Value Store 레디스는 거대한 맵 데이터 저장소 key,value가 매핑된 단순한 맵 데이터 저장소로서 데이터를 레디스에 쉽고 편하게 읽고 쓸 수 있다. 익히기 쉽고, 직관적이다. (단점: 데이터를 레디스 자체 내 에서 처리가 어렵다) 2. 다양한 데이터 타입 리스트, 배열 형식의 데이터 처리에 특화됨 Value 값으로 문자열,리스트,set,sorted set,hash등 여러 데이터 형식을 지원한다. 3. 속도 리스트 형 데이터의 입력과 삭제가 Mysql보다 10배 빠르다 4. 영속성 Redis는 데이터를 디스크에 저장할 수 있다. Redis서버가 셧다운 된 후에 재시작해도 Disk에 저장해놓은 데이터를 다시 읽어서 데이터가 유실되지 않는다. Redis의 데이터를 디스크에 저장하..
Redis는 인메모리 데이터베이스 관리 시스템이다. 다른 인메모리 데이터베이스와 달리 다양한 자료구조를 지원한다. (String,List,Sets,Streams,Hashes 등등) 자료구조가 다양해서, 개발의 편의성이 좋아지고, 난이도가 낮아진다. DBMS를 이용하여 DB에 데이터를 저장하고 저장된 데이터를 정렬하여 다시 읽어오는 과정을 가진다면 디스크에 직접 접근을 해야하기때문에 시간이 더 걸린다. NOSQL로서 key-value 타입의 저장소인 레디스의 주요특징은 아래와 같다. -영속성을 지원하는 인메모리 데이터 저장소 -읽기 성능 증대를 위한 서버 측 복제를 지원 -다양한 서비스에서 사용되며 검증된 기술 -문자열,리스트,해시,셋 정렬된 셋과 같은 다양한 데이터형을 지원한다. Redis 영속성 레디스..