NoSQL
- 관계형? 비관계형??
-관계형 DB
관계형 디비는 관계형 모델에 기초한 데이터 베이스 이다.
속성 즉 테이블로 이루어진 집합.
sql문은 관계형 DB를 관리하기 위해 설계된 질의 언어 이다.
하는 일: 자료검색, 수정, 스키마관리
- 관계형 DB의 단점
고정된 스키마를 정의해야 됌
Join으로 인한 성능 문제
데이터들이 복잡한 관계를 맺고 있기 때문에 수평적 확장성이 떨어짐
-비 관계형 DB
- sql문을 사용하지 않겠다.
- 단순화 된 데이터를 분산 시켜서 저장해서 사용하겠다.(어느정도 중복 허용)
모델의 종류
key value
document: key value지만 value가 계층적이다.
wide-column: 각 low마다 다른 스키마를 가질 수 있다.
graph: Node와 간선으로 이루어져있어 관계를 나타내기 좋다.
그렇다면 Redis는 ???
기본적으로 영속성을 위한 DB는 아니다.
영속성을 지원한다.
DMBS보다는 빠른 캐시의 성격을 나타낸다.
다양한 자료구조를 지원????/ ---> 엉청난 특별점이다.
1. String -> key하나에 문자열이 저장된다.
(바이트 배열을 저장) -> null문자
바이너리 데이터는 모두 저장 가능.
명령어 | 기능 |
set | 특정 키에 문자열 값을 저장한다. |
get | 특정 키의 문자열 값을 얻는다. |
incr | 특정 키의 값을 integer로 취급하여 1증가시킨다. |
decr | 특정 키의 값을 integer로 취급하여 1 감소시킨다. |
meset | 여러키에 대한 값을 한번에 저장한다. |
mget | 여러키에대한 값을 한번에 얻어온다. |
만약 숫자가 들어가있다면 incer [keyname] 이 가능 +1 효과
decr [keyname] 이 가능 -1 효과
meset 은 키 벨류 여러개 한번에 넣기, mget 여러 key에 대한 값 여러개 얻기.
2. Lists -> Linked-list형식으로 queue와 stack으로 사용 가능.
LPUSH, LPUSH, LLEN, RPOP 큐처럼 작동가능.
SET 데이터 구조.
set -> 순서가 없는 유니크한 값의 집합(검색이 빠름)
SADD, SREM, SMEMBERS, SISMEMEBER
Hashes->key value로 저장.
HSET user name bear age 10
HGET user name
HMGET user name age
HINCREBY
HKEYS
HDEL
Sorted Sets
유니크하지만, 정렬이 되어있음,
ZADD --> 추가
ZRANG --> 0, 1 데이터 조회
ZRank
Bit Map --> 이건 새롭다.
비트 백터를 사용해서 효율적으로 공간 저장.
SET BIT
BITCOUNT
BITOP
HyperLogLog-->
PFADD
PFCOUNT
PFMERGE-> 병합
'Spring > Redis' 카테고리의 다른 글
태태개발일지 - redis (1) | 2025.01.27 |
---|---|
태태개발일지 -REDIS (1) | 2024.11.12 |
Spring redis 총정리 (0) | 2024.05.27 |
태태 개발일지 Redis편 (0) | 2023.08.02 |
태태의 개발일지 (0) | 2023.08.02 |