minOS

레디스 타입 살펴보기 본문

TIL/Redis

레디스 타입 살펴보기

minOE 2025. 3. 6. 02:00
728x90

STRING TYPE

--String SET,GET 문자열 자료형
-- <명령어> <KEY> (VALUE)
SET user:email nimpa3201@naver.com
GET user:email


-- 정수가 문자열로 저장된 경우
-- INCR  : ++ , DECR : --
SET user:count 1
GET user:count
INCR user:count
GET user:count
DECR user:count
GET user:count

--MSET,MGET
MSET user:name bred user:email brad3201@naver.com
MGET user:name user:email

-- 문자열 -> toCharArray() toByteArray()
-- 문자열 -> 이미지, 음성, 영상, 파일 ,HTML (512MB) // 레디스 메모리에 올리고  싶으면 문자열 사용 가능
-- Simple

 

 

 

LIST TYPE

--List : Linked List
-- 스택,큐 처럼 사용가능
-- Push, Pop -> 왼쪽(L)이냐 오른쪽(R)이냐
LPUSH user:list alex
LPUSH user:list brad
RPUSH user:list chad
RPUSH user:list dave


LPOP user:list
RPOP user:list






 




 

- KEY에 저장된 자료형이 다를 경우 오류가 발생한다.(문자열 타입 명령어 GET)

GET user:list


오류 발생

 

-- LLEN: 리스트의 크기
LLEN user:list

 

 

-- 리스트의 내용 범위 밖으로 설정해도 오류 X
LRANGE user:list 0 10000

-- 음수 index
LRANGE user:list 0 -1
LRANGE user:list 0 -2

--end < start 빈리스트 돌려줌
LRANGE user:list 1 0

 

 

 

Set TYPE

-- Set: (문자열의) 집합
-- 중복을 허용하지 않는다.
SADD user:java alex
SADD user:java brad
SADD user:java chad

-- 제거
SREM user:java alex


-- 존재 유무
SISMEMBER user:java brad

-- set에 존재하는 모든 원소
SMEMBERS user:java

-- set의 크기
SCARD user:java

-- 교집합
SINTER user:java user:python

-- 합집합
SUNION user:java user:python


-- 교집합의 원소의 개수 //2 키의 개수 의미
SINTERCARD  2 user:java user:python

 

 



















 

 

 

Hash Type

--HASH
--Field - Value Pair
HSET user:alex name alex age 25

-- 특정 키의 값 가져오고 싶을떄
HGET user:alex name
HGET user:alex age

-- 복수의 키의 값 가져오고 싶을떄
HMGET user:alex age major

-- 해시안에 모든 키값,벨류 가지고 오고싶을때
HGETALL user:alex

-- key 전부 가져오기
HKEYS user:alex

-- 해쉬 크기 반환
HLEN user:alex

-- 장바구니, 세션정보
HSET cart:alex computer 1 mouse 2 keyboard 10










- 장바구니 예시

 

Sorted Set TYPE
정렬된 집합 : 중복되지 않는 데이터 + 점수

--Sorted Set
-- 정렬된 집합 : 중복되지 않는 데이터 + 점수
-- ZADD key score value
ZADD user:rank 10 alex
ZADD user:rank 9 brad 11 chad
ZADD user:rank 8 dave
ZADD user:rank 9.5 eric



-- 특정 value score 올려주기
ZINCRBY user:rank 2 alex



-- 점수 몇번째인지 보여줌 가장 낮으면 0
ZRANK user:rank alex 
ZRANK user:rank eric
ZRANK user:rank dave

-- 점수 높은 순으로 몇번째인지 보여줌 가장 높으면 0
ZREVRANK user:rank alex


-- 점수 낮은 사람 범위안에서 정렬해서 보여줌
ZRANGE user:rank 0 3

-- 점수 높은 사람 버위안에서 정렬해서 보여줌
ZREVRANGE user:rank 0 3
--순위표(리더보드),Rate Lmiter










 

key 타입 상관 X

-- DEL : key 삭제하기 타입 관계없음
SET somekey "to be deleted"
DEL somekey​


--EXPIRE : 만료시간 설정 (5초)
SET expirekey "to be expired"
EXPIRE expirekey 5

-- EXPIRETIME : 만료될 시간을 UNIX Timestamp로 반환
EXPIRETIME  expirekey

-- KEYS: Key를 검색한다
KEYS *

-- FLUSHDB : 모든 키 다 사람짐
FLUSHDB

 

 

--String SET,GET 문자열 자료형
-- <명령어> <KEY> (VALUE)
SET user:email nimpa3201@naver.com
GET user:email


-- 정수가 문자열로 저장된 경우
-- INCR  : ++ , DECR : --
SET user:count 1
GET user:count
INCR user:count
GET user:count
DECR user:count
GET user:count

--MSET,MGET
MSET user:name bred user:email brad3201@naver.com
MGET user:name user:email

-- 문자열 -> toCharArray() toByteArray()
-- 문자열 -> 이미지, 음성, 영상, 파일 ,HTML (512MB) // 레디스 메모리에 올리고  싶으면 문자열 사용 가능
-- Simple


--List : Linked List
-- 스택,큐 처럼 사용가능
-- Push, Pop -> 왼쪽(L)이냐 오른쪽(R)이냐
LPUSH user:list alex
LPUSH user:list brad
RPUSH user:list chad
RPUSH user:list dave

LPOP user:list
RPOP user:list

-- KEY에 저장된 자료형이 다를 경우 오류가 발생한다.(문자열 타입 명령어 GET)
GET user:list


-- LLEN: 리스트의 크기
LLEN user:list
LRANGE user:list 0 3
LRANGE user:list 0 -1
LRANGE user:list 0 -2

--end < start 빈리스트 돌려줌
LRANGE user:list 1 0

-- Set: (문자열의) 집합
-- 중복을 허용하지 않는다.
SADD user:java alex
SADD user:java brad
SADD user:java chad

-- 제거
SREM user:java alex

-- 존재 확인
SISMEMBER user:java brad

-- set에 존재하는 모든 원소
SMEMBERS user:java

-- set의 크기
SCARD user:java

-- 교집합 합집합
SADD user:python alex
SADD user:python dave
SADD user:java alex

-- 교집합
SINTER user:java user:python

--합집합
SUNION user:java user:python

-- 교집합의 원소의 개수 //2 키의 개수 의미
SINTERCARD  2 user:java user:python

--HASH
--Field - Value Pair
HSET user:alex name alex age 25
HSET user:alex major CSE

HGET user:alex name
HGET user:alex age
HMGET user:alex age major

HGETALL user:alex

HKEYS user:alex
HLEN user:alex

-- 장바구니, 세션정보
HSET cart:alex computer 1 mouse 2 keyboard 10

--Sorted Set
-- 정렬된 집합 : 중복되지 않는 데이터 + 점수
-- ZADD key score value
ZADD user:rank 10 alex
ZADD user:rank 9 brad 11 chad
ZADD user:rank 8 dave
ZADD user:rank 9.5 eric

ZINCRBY user:rank 2 alex
-- 점수 몇번째인지 보여줌 가장 낮으면 0
ZRANK user:rank alex
ZRANK user:rank eric
ZRANK user:rank dave
ZREVRANK user:rank alex

-- 점수 낮은 사람 범위안에서 정렬해서 보여줌
ZRANGE user:rank 0 3

-- 점수 높은 사람 버위안에서 정렬해서 보여줌
ZREVRANGE user:rank 0 3


-- DEL : key 삭제하기 타입 관계없음
SET somekey "to be deleted"
DEL somekey

--EXPIRE
SET expirekey "to be expired"
EXPIRE expirekey 5
EXPIRETIME  expirekey

KEYS *

-- FLUSHDB : 모든 키 다 사람짐
FLUSHDB
728x90

'TIL > Redis' 카테고리의 다른 글

Redis 실습 문제  (0) 2025.03.07