thals0 / TIL

📚 하루동안 공부한 내용을 기록하는 공간입니다.
0 stars 0 forks source link

[DataBase] Redis란 ? #14

Closed thals0 closed 1 year ago

thals0 commented 1 year ago

1. Redis란?

Redis 는 Key-Value 형태로 데이터를 관리하는 오픈 소스

Redis 는 빠른 속도와 간편한 사용법으로 인해 캐시, 인증 토큰, 세션 관리 등등 여러 용도로 사용됨

2. Redis 설치

도커로 설치 후 실행 가능

# 이미지 다운 (docker images 로 확인 가능)
$ docker pull redis

# 컨테이너로 레디스 실행 (--name: 컨테이너 이름 설정, -p: 포트 포워딩, -d: 백그라운드에서 실행)
$ docker run --name myredis -p 6379:6379 -d redis

# redis-cli 접속
$ docker exec -it myredis redis-cli

3. Redis 명령어

Redis 는 여러 개의 데이터 타입을 저장할 수 있기 때문에 각각의 명령어가 여러개 존재

모든 명령어는 Redis Commands 를 참고

다만 Redis 는 Single Thread 기반이기 때문에 keys, flushall, flushdb, getall 등 일반적으로 생각했을 때 O(N) 의 시간복잡도를 가질 것 같은 명령어는 운영 환경에서 사용하면 위험하다

3.1 String

가장 기본적인 Value 타입입니다.

3.2 Set

Redis 에서는 Set 에 포함된 값들을 멤버라고 표현 여러 멤버가 모여 집합 (Set) 을 구성 진짜 집합처럼 교집합, 차집합 등도 구할 수 있는데 여기선 간단하게 CRUD 만 적어보겠다

3.3 Hash

Hash 자체를 나타내는 key 와 해당 key 에 포함된 field 까지 사용해서 값을 조회/저장할 수 있다

Reference

thals0 commented 1 year ago

1. Redis Sorted set

1-1. Sorted set 이란?

Redis에서 제공해주는 자료구조 중 하나인 Sorted Set(또는 ZSET, 둘다 동일한 말이다)은, 이름 그대로 Set의 특성을 그대로 가지면서 추가적으로 저장된 value들의 순서도 관리해준다. 이 때 이 순서를 위해 각 value에 대해 score를 필요에 맞게 설정할 수 있으며, 이 score를 기반으로 정렬이 된다.

1-2. Sorted set 구조

image ZSET은 key/value 형태의 자료구조이고, 여기서 key는 member, value는 score 라고 부른다. 하나의 ZSET에서 member는 unique하고, member 값을 통해 시간복잡도 O(1)로 해당하는 원소에 바로 접근할 수 있다. score 은 부동 소수점 수만 허용되고, 이 score 값을 기준으로 ZSET 내의 각 원소들이 순서를 가지게 된다.