좋아하는 것_매직IT 썸네일형 리스트형 12.Redis, 정렬된 셋 데이터에 대해서 알아보자. 정렬된 셋에 대해서... 정렬된 셋 데이터의 특징은 아래와 같다. 셋 데이터와 유사한 구조를 가지고 있기 때문에 셋 데이터와 동일한 특징을 가짐. 요소 정렬이라는 부가적인 특징을 가짐. 정렬된 셋 명령의 접두사는 "Z" "Z" 로 시작하는 명령은 예외없이 모두 정렬된 셋 데이터의 명령임. 정렬된 셋 데이터는 셋 데이터 구조에 요소의 가중치(score) 값이 추가되어 있음. 가중치에 따라 각 요소의 정렬이 수행됨. 저장된 요소에 점수를 지정하거나 더하여 요소의 순서를 변경할 수 도 있음. 가중치에 입력가능한 값 정수 or 배정밀도 부동소수점 기본정렬순서 : 오름차순 즉, 가중치가 작은 데이터부터 큰 데이터의 순서로 정렬되어 조회됨. 단, 아래 명령을 통해서 내림차순으로 정렬된 결과를 조회할 수 있음. zr.. 더보기 11.Redis, 셋 데이터에 대해서 알아보자. 셋 데이터에 대해서.. 셋데이터는 중복을 허용하지 않는 집합 형태의 자료구조. 유의사항으로, 셋 데이터의 정렬은 되어 있지 않음. 셋데이터에는 2의 32승-1개의 값을 저장할 수 있음. 숫자로 바꾸어보면...대략 42억개가 넘게됨...^^; 값이 저장될 때 중복에 대한 확인이 일어남. 셋 데이터의 내부 구현은 해시 구조이기 때문에 저장된 요소의 개수에 상관없이 동일한 시간 복잡도를 가짐. 셋 데이터 구조 하나의 Key 에 여러개의 요소가 저장되며, 집합연산이 가능한 구조. 집합연산 합집합 sunion 명령 교집합 sinter 명령 차집합 sdiff 명령 셋의 주요 명령어 셋의 집합 연산 sunion 주어진 키에 저장된 요소들의 합집합을 돌려줌. 명령) sunion [key1] [key2] 응답) , 합집.. 더보기 10.Redis, 해시 데이터에 대해서 알아보자. 해시데이터에 대해서.. 해시 데이터는 문자열 필드와 값으로 이루어진 Map 구조로 되어 있음. 해시 데이터에는 2의 32승-1 개의 필드와 값을 저장할 수 있음. 숫자로 바꾸어보면...대략 42억개가 넘게됨...^^; 해시 명령의 시간 복잡도는 O(1) 단, hgetall/hkeys/hvals Redis 명령은 제외. 해시 데이터의 저장 구조 Key 하나에 여러 개의 Field-Value 쌍으로 이루어짐. 즉, 일반적으로 프로그램 언어의 Map 자료구조와 동일함. 해시 데이터의 명령어 그룹데이터 저장 해시 데이터를 생성 및 삭제하는 명령은 아래와 같음. hmset 명령) hmset [key] [field1] [value1] [field2] [value2] .... 응답) , 항상 OK hmget 명령) .. 더보기 9.Redis, 문자열 데이터에 대해서 알아보자. 문자열 데이터 문자열 데이터는 Key 하나에 문자열 하나를 저장할 수 있는 구조. 저장 가능한 문자열 최대 크기 512MB 문자열 데이터 저장구조 문자열 데이터를 저장 할 때는 인코딩된 문자열과 몇 가지 부가 정보가 포함된 구조체로 변환하여 저장함. 이것을 레디스 객체형이라고 부름. 문자열 데이터의 입력 그리고 조회, 숫자의 증감 다중 Key 에 대한 저장과 조회 처리 명령 mset 키와 값의 쌍으로 이루어진 데이터를 저장함. 명령) mset [key1] [value1] [key2] [value2] .... 응답), 항상 OK mget 주어진 키에 대한 값의 목록을 조회함. 주어진 키가 존재하지 않으면, nil 로 표시됨. 명령) mget [key1] [key2] ... 응답), 조회된 키의 값 목록 예.. 더보기 8.Redis, 레디스의 데이터 구조 그리고 키는 어떻게 설계할까요? Redis 그리고 Data 구조 Redis 는 거대한 Key-Value 저장소, 즉 거대한 맵(Map 데이터 구조) 저장소 임. 맵 데이터 구조는 위와 같이 Key 하나에 Data 하나가 저장되는 매우 단순한 구조임. 이것이 Redis 의 가장 큰 장점이자 단점이라고 할 수 있음. 장점 익히기 쉽고 직관적임. 단점 저장된 데이터를 가공하는 방법에 제한이 있게됨. Redis 는 이러한 가공 방법의 제한을 다양한 종류의 데이터형과 명령을 통해서 보완하고 있음. Redis Key 설계에 대해서.. NoSQL에서 데이터를 조회하기 위한 가장 기본적인 값은 "KEY" 관계형 데이터베이스에서 말하는 테이블의 Primary Key와 동일한 개념이라고 보면됨. 즉, Key 하나가 하나의 레코드를 정의한다고 보면 됨. .. 더보기 7.Redis, 그러면..언제 NoSQL을 사용해야 할까요? ^-^ NoSQL의 사용에 대해서 한번 생각해보자 관계형 데이터베이스 장점 충분히 성숙된 기술 범용 데이터 저장소로서 역할을 충분히 수행함. 복잡한 업무 로직을 처리하는 분야에서 NoSQL 보다 더 나은 성능을 보임. 단, 한계점은... 관계형 데이터베이스의 특성상 제공 가능한 성능에 한계가있음. 그럼에도 불구하고... NoSQL이 필요한 상황이 발생할 소지가 생김. NoSQL 이 필요한 경우 대량의 단순 정보를 빠르게 저장하고 조회할 때 관계형 데이터베이스가 처리하지 못하는 대량의 데이터를 저장할 때 스키마가 고정되지 않은 데이터를 저장하고 조회할 때 기타 등등. 즉, 위에서 언급한 관계형 데이터 베이스의 한계를 넘어선 성능이 필요할 때 NoSQL를 선택하면됨. 만일, NoSQL의 도입을 확정했다면... 어떤.. 더보기 28.마이크로서비스, 상호작용스타일에 대해서 알아보자. 블로그 목적 마이크로서비스에서의 상호작용 스타일에 대해서 정리해본다. 마이크로서비스에서 상호작용스타일은? 서비스에 적용할 수 있는 IPC 기술은 많이 존재함. 동기 요청/응답 기반의 통신 매커니즘 REST(Representational State Transfer) https://ko.wikipedia.org/wiki/REST REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 이 개념은 네트워킹 문화에 널리 퍼짐. gRPC(gRPC Remote Procedure .. 더보기 27.마이크로서비스, 분해에 대해서 알아보자. 블로그 목적 마이크로서비스에서 분해에 대해서 알아본다. 마이크로서비스에서 분해란? 분해는 마이크로서비스 아키텍처를 정의하는 주요 수단임 비즈니스 능력에 따른 분해 하위 도메인에 따른 분해 마이크로서비스에서는 분해에 대해서, 객체지향 설계에 근거한 2가지 법칙을 적용할 수 있음. 로버트 C.마틴(Robert C. Martin) 부치 메소드를 응용한 객체 지향 C++ 어플리케이션 설계(Designing Object Oriented C++ Applications Using The Booch Method) / Prentice Hall, 1995 해당 내용에서는 2가지원칙을 말하고 있음. 하나, 단일 책임 원칙(SRP, Single Responsibility Principle) 클래스의 책임을 정의하는 원칙 둘,.. 더보기 이전 1 ··· 58 59 60 61 62 63 64 ··· 72 다음