Redis 썸네일형 리스트형 13.Redis, 리스트 데이터에 대해서 알아보자. 리스트에 대해서... 리스트 데이터는 저장 순서를 기억하는 데이터 구조이며, 중복을 허용함. 저장가능한 최대요소 수 2의 32승 - 1 개, 대략적으로 42억개... 구현은 이중 링크드 리스트로 구현되어 있음. 즉, 첫번째(head)요소와 마지막(tail)요소의 조회 시간이 가장 빠르고, 리스트의 중간에 저장된 데이터를 조회하는 시간이 가장 오래 걸리는 특징이 존재함. head 데이터 왼쪽 tail 데이터 오른쪽 lpush left push rpush right push 리스트 데이터의 저장구조 리스트 데이터 구조는 내부적으로 Deque(Double ended queue) 구조를 구현하고 있음. Deque 란? 선형 자료구조인 stack 과 queue 의 특징을 하나로 모은 자료구조 양쪽 방향 모두에서 .. 더보기 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의 도입을 확정했다면... 어떤.. 더보기 6.Redis, NoSQL를 한번 분류해볼께요. ^^ NoSQL 분류는 ? 데이터의 저장 방식에 따라 분류되기도 함. NoSQL은 데이터 접근을 위해 키를 사용함, 키에 저장된 값의 데이터 모델에 따라서 분류하는 방법. 키-값 모델 문서 모델 컬럼 모델 그래프 모델 키-값 모델 가장 기본적인 형태 NoSQL 키 하나로 데이터 하나를 저장하고 조회할 수 있는 단일 키-값 구조를 가짐. 공통특징 키-값 모델 NoSQL에 저장 가능한 데이터의 종류는 각 NoSQL별로 상이함. 대부분 키-값 모델 NoSQL은 단순한 저장구조로 인하여 복잡한 조회 연산을 지원하지 않음. 고속읽기 와 쓰기에 최적화된 경우가 많음. 대부분 저장된 데이터에 대한 검증이나 데이터의 내용에 기반한 조회를 지원하지 않음. 저장된 값을 단지 의미없는 바이너리 데이터로 처리함. 주요 솔루션 레디.. 더보기 이전 1 2 3 4 5 다음