Spring/Redis

태태 개발일지(No sql)

태태코 2023. 8. 3. 16:23
반응형

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