- Redis Core, I/O, Transaction, LockstarryeyeRedis Core Redis 는 기본적으로 싱글 스레드 모델을 사용하는 데이터베이스이다. 한번에 하나의 명령어만 처리할 수 있음을 뜻한다. 따라서, 하나의 연산에 대해 원자성을 보장할 수 있다. 조금 다르게 말하면, 병렬성(Parallelism) 없이 작업이 진행되고 동시성(Concurrency)으로 처리된다. 참고> 병렬성: 한 번에 여러가지 일을 처리 동시성: 한 번에 한가지 일을 하지만, 여러 가지 일을 돌아가면서 처리 (각각 GPU 와 CPU 를 연상해보자..) 따라서, 단일 연산에 대해 동시성 문제가 없다. 그래서 단일 연산에 대해 복잡한 동기화와 락 설정을 걱정하지 않아도 된다. 그러나, 하나의 Value에 대해 여러 연산(조회 후, 업데이트 등)을 처리함에 있어서 분산 환경일 경우 원자성..
- 2023-06-03 04:01:28(1년 전)
- Redis Data Type 3starryeyeRedis 가 제공하는 Data Type 종류에 대해 계속 알아보겠다. 5. Sorted Set (ZSets) 하나의 Key 에 Value 로는 정렬된 데이터 집합으로 이루어진 형태이다. -> Key 는 변수이고, Value 는 C++ 의 set 이라 생각하면 편하다. -> 그런데 차이점은, Value 에 각 데이터들은 score 라는 값(숫자)이 존재하고 이를 바탕으로 정렬한다. (각 데이터는 member 로 불린다.) 특징 1. Redis 의 Sets 와 유사하게 유니크한 값의 집합이다. 2. 정렬된 상태를 유지한다. -> 최소/최대 값을 빠르게 조회할 수 있다. 3. 활용 랭킹(리더 보드) 기능에 활용 가능하다. 4. 대표적 명령어 명령어 기능 ZADD [Key] [Score] [Member] [S..
- 2023-06-02 21:47:42(1년 전)
- Redis Data Type 2starryeyeRedis 가 지원하는 Data Type 에 대해서 계속 알아보자.. 3. Sets Lists 와 동일하게 Key 하나에 Value 가 여러개의 집합으로 이루어져 있다. Value 만을 본다면, C++ 에서 unordered_set 과 비슷한 역할이다. 특징 1. 순서가 없고 유니크한 값의 집합 2. 개별 접근을 위한 인덱스가 존재하지 않지만, 개별 값의 존재 여부는 빠르게 체크 할 수 있다. 3. 집합 연산이 존재한다. (합집합, 교집합 등) 4. 활용 알고리즘 Union, Hash Table, Hash Set 등에 해당되는 모든 상황에서 활용가능하다. > 특정 시간동안 유저 한명 당 한번의 유효한 쿠폰을 발급하는 요구사항이 있을 때, 개발자는 Redis 의 Sets 를 사용할 수 있다. 특정 시간동안..
- 2023-06-02 13:04:38(1년 전)
- Redis Data Type 1starryeyeRedis 는 Key-Value store 이다. 이때, Value 에 해당하는 부분에서 다양한 데이터 구조를 지원한다. 하나씩 살펴보자.. 1. Strings Key 하나에 Value 는 문자열에 해당된다. 특징 1. 문자열을 저장할 때, Byte 배열로 저장된다. -> 따라서, 바이너리로 표현가능한 모든 데이터를 저장할 수 있다. (Binary-Safe) -> 주로 캐시에서 이용되며, 이를 이용해서 정적 웹 컨텐츠(HTML, JPG, JSON 등)들을 저장 2. 문자열에 저장할 수 있는 최대 크기는 512MB 이다. 3. 대표 명령어 명령어 기능 SET [Key] [Value] GET [Key] 해당 키에 문자열 값을 저장하고 반환 받는다. 덮어쓰기 가능 SET [Key] [Value] EX [Sec..
- 2023-06-02 01:07:53(1년 전)
- Redis 시작해보기starryeyeRedis 는 가장 대표적인 NoSQL 의 Key-Value 모델을 따르는 저장소이다. -> Hash Map 이라 생각해보자.. 간단하게 알아보는 대표적 특징 1. In-memory 저장소로 아주 빠른 접근 속도를 제공한다. 2. 세션 관리나 캐시 등의 목적으로 자주 사용된다. 3. Key-Value Store 이므로, 분산 환경을 제공하여 데이터 관점의 Shard(Cluster, Scale-Out) 가 가능하다. (물론, HA를 위한 Replica, Sentinel 개념도 존재) 4. Key 를 통해서만 값을 읽을 수 있다. (Value 단독 조회 불가능) 5. 범위 조회 등의 복잡한 질의 불가능 6. In-Memory 데이터를 주기적으로 디스크에 스냅샷으로 저장(RDB)하거나, 모든 변경을 로그 파..
- 2023-06-01 22:30:23(1년 전)
- MongoDB Sharded Clusterstarryeye이번 포스트에서는 MongoDB 의 Sharded Cluster 배포 형태에 대해 알아보겠다. 사용 목적 Sharded Cluster 의 사용 목적은 다음 상황에 적절하다... 기존에 Replica Set 을 잘 이용하고 있다가.. 서비스가 잘 커서 MongoDB 에 많은 양의 데이터가 추가 되어 더이상 감당 할 수 없게 되었다.. 이 때, Sharding 을 통해 데이터를 샤드 키로 분산하여 여러개의 Replica Set 묶음으로 적재 할 수 있도록 할 수 있다. 아래 그림을 통하여 더 자세히 알아보도록 하자.. 위 그림은 대표적인 MongoDB 의 Sharded Cluster 형태를 나타낸다. 각 샤드는 내부에서 Replica Set 을 이루고 있다. Application 은 mongos 라는 라우터..
- 2023-06-01 21:17:47(1년 전)
- MongoDB Replica SetstarryeyeMongoDB 의 3가지 형태 중 하나인 Replica set 에 대해 알아보겠다. 특징 - High Availability (고 가용성) - 가장 많이 사용됨 - 무중단 서비스를 가능하도록 만들어주는 최소 단위 Replica set 의 맴버 현재 위 그림에서 MongoDB 는 3개의 맴버를 가지고 있다. (Primary, Secondary, Secondary) 각 맴버는 각각 다른 서버에 존재한다. (모두 하나의 서버에 존재 할 수 도 있다.) 맴버의 상태로는 3가지가 있다. Primary - Read/Write 요청 모두 처리 가능하다. - Write 를 처리 할 수 있는 유일한 맴버이다. - Replica set 에서 하나만 존재 Secondary - Read에 대한 요청만 처리할 수 있다. - 복..
- 2023-05-20 17:08:26(1년 전)
- MongoDB 3가지 형태starryeyeMongoDB 를 배포할 때는 3가지 형태로 배포할 수 있다. 1. Standalone 2. Replica set 3. Sharded cluster 3가지에 대해 각각 간단히 알아보겠다. 1. Standalone 용도 : 개인 스터디, 테스트 단순히 프로세스 1개만을 이용해서 MongoDB 서버를 띄우는 형태이다. 분산을 하기 위해 MongoDB 를 사용하는 경우가 많은데 이를 이용하지 않는 형태로... 스터디 용도가 아니면 사용되지 않는다. 2. Replica set 용도 : HA(High Availability) 고 가용성 용도로 현업에서 가장 많이 사용되는 형태이다. Atlas 에서도 Replica set 형태로 배포된다. 위 그림에서는 Replica set 의 기본 형태를 보여준다. MongoDB..
- 2023-05-20 16:41:55(1년 전)
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)