Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
[Redis] 데이터 타입
data_engineering
redis

[Redis] 데이터 타입

Jay Kim
Jay Kim 04 Dec 2023
[Redis] Intro [Redis] NestJS에서 사용하기 (준비중)

Table of Contents

  • String
    • 간단한 실습
  • Number
    • 간단한 실습
  • Hash
    • 간단한 실습
  • Set
    • 간단한 실습
  • Sorted Set
    • 간단한 실습

String

  • 레디스에서는 문자열과 관련하여 아래와 같은 명령어를 제공한다

  • 복잡해 보이지만 약간의 규칙이 있다
    • 앞에 M이 붙어있는 것은 여러 개의 데이터를 다룰 수 있다는 의미다
    • 뒤에 EX가 붙어있는 것은 만료 시간을 함께 지정한다는 의미다
    • 뒤에 NX가 붙어있는 것은 키(key)가 존재하지 않을 때 명령어를 실행한다는 의미다
  • 위에서 살펴본 EX, NX 같은 요소들은 레디스에서 제공하는 옵션의 일부를 붙여서 새로운 명령어로 만든 것에 불과하다
    • SET key apple EX 60 와 SETEX key 60 apple 는 같은 기능을 수행한다
  • 레디스 공식문서를 보면 아래와 같이 명령어에 어떤 옵션을 사용할 수 있는지 알려준다

간단한 실습

SET apple red -- OK
GET apple -- red
-- 3초간 유효한 문자열 데이터를 저장한다

SET banana yellow EX 3 -- OK
-- 3초 뒤
GET banana -- null
-- 문자열의 길이를 리턴한다. 없으면 0

STRLEN apple -- 3
STRLEN banana -- 0
-- 여러 개의 데이터를 읽고 쓴다

MSET grape violet pear white avocado green -- OK
MGET grape pear banana -- [ "violet", "white", null]
-- 일부 문자열을 교체한다

SETRANGE apple 2 dish -- 6
GET apple -- redish

Number

  • 레디스에는 숫자형 데이터를 따로 구분하지 않지만, 여기서는 그냥 편의상 구분했다
  • 좋아요나 조회수 같은 카운터 기반 기능 구현할 때 유용하다

간단한 실습

SET like 5 -- OK

INCR like -- 6

INCRBY like 100 -- 106

INCRBYFLOAT like 0.6 -- "106.6"

Hash

  • 레디스에서는 해시 데이터 타입과 관련된 명령어를 다음과 같이 제공한다

  • 해시 데이터 타입은 아래와 같이 값(value)이 딕셔너리 형태로 되어 있다

간단한 실습

HSET user name kim age 20 address Seoul -- 3

HGET user name -- "kim"
HGETALL user -- { "name": "kim", "age": "20", "address": "Seoul" }

Set

  • 레디스에서는 셋 데이터 타입과 관련된 명령어를 다음과 같이 제공한다

  • 셋 데이터 타입은 아래와 같이 값(value)이 셋 형태로 되어 있다

간단한 실습

SADD color red blue green -- 3
SMEMBERS color -- [ "red", "blue", "green"]
SADD myfavorite blue -- 1
SDIFF color myfavorite -- [ "red", "green" ]

Sorted Set

  • 레디스에서는 정렬된 셋 데이터 타입과 관련된 명령어를 다음과 같이 제공한다

  • 역할별로 구분해서 정리해보면 다음과 같다

  • 정렬된 셋 데이터 타입은 아래와 같이 값(value)이 실제 값(member)과 점수(score)를 가지는 형태로 되어 있다
  • 실제 값(member)은 셋(Set)이기 때문에 유니크(unique)해야 한다. 점수(score)는 유니크할 필요 없다

간단한 실습

ZADD midterm 80 math 60 english 90 science -- 3
-- 오름차순

ZRANK midterm english -- 0
ZRANK midterm math -- 1

ZRANK midterm english WITHSCORE -- [0, "60"]
-- 내림차순

ZREVRANK midterm english -- 2
[Redis] Intro [Redis] NestJS에서 사용하기 (준비중)

You may also like

See all redis
05 Dec 2023 [Redis] NestJS에서 사용하기 (준비중)
data_engineering
redis

[Redis] NestJS에서 사용하기 (준비중)

레디스를 NestJS에서 사용하는 방법에 대해 배운다

03 Dec 2023 [Redis] Intro
data_engineering
redis

[Redis] Intro

레디스의 특징과 레디스를 사용하는 이유에 대해 배운다

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.