
redis 는 한 번에 한 스레드(싱글 스레드)만 처리하는 대신 매우 빠르다 !String : 데이터를 value로 저장. 가장 일반적인 key : value의 형태.
# nx : not exist
set user:email:2 hong1@test.com nx # user:email:1 에 값이 nx 할 때만 value를 넣겠다!
# ex : 만료시간 - 초 단위 > ttl(time to live) = 유효시간
set user:email:2 hong2@test.com ex 20
List : 순서가 있는 문자열 목록.
{"hello", "hello1", "hello2"}
redis의 list 는 java의 deque 와 같은 구조. 즉, double-ended queue 구조.
데이터 추가 : LPUSH, RPUSH
데이터 추출 : LPOP, RPOP
데이터 개수 : LLEN
lpush fruits apple
lpush fruits banana
lpush fruits kiwi
lpop fruits
# lpop > kiwi 가 나옴! lpush 했으니까 {kiwi, banana, apple}
# 꺼내서 없애는게 아니라 꺼내서 보기만! (pop은 없어짐)
lrange fruits -1 -1
lrange fruits 0 0
Sets : 중복을 허용하지 않는 문자열 집합.
# set 자료구조
# set 자료구조에 멤버 추가
sadd members member1
sadd members member2
sadd members member1
# set 조회
smembers members
# member1 이 중복 => 제거되어있음! set 자료구조는 중복이 제거된다.
# set 값 개수 조회
scard members
# 특정 멤버가 set 안에 있는지 존재 여부 확인
sismember members member3
#set에서 멤버 삭제
srem members member2
# 매일 방문자 수 계산
# 같은 사람이 여러번 반복해도 오르지 않도록.
# 금일 날짜를 key 값으로 방문자 수를 계산.
sadd visit:2024-05-27 hong1@naver.com
sadd visit:2024-05-27 hong2@naver.com ...
sacrd visit:2024-05-27
Sorted Sets : 점수가 할당된 문자열로 이루어진 집합.
# zset(sorted set)
zadd zmembers 3 member1
zadd zmembers 4 member2
zadd zmembers 1 member3
zadd zmembers 2 member4
# score기준 오름차순 정렬 / 내림차순 정렬
zrange zmembers 0 -1
zrevrange zmembers 0 -1
# 최근 본 상품 목록
zadd recent:products 192402 melon
zadd recent:products 192411 appple
zadd recent:products 192413 appple
zadd recent:products 192415 banana
zadd recent:products 192420 kiwi
zadd recent:products 192422 appple
zadd recent:products 192431 appple
zrevrange recent:products 0 2 # apple은 덮어씌워지기 때문에 조회시 마지막 apple, banana, kiwi 조회됨.
Hashes : key : value 로 이루어진 맵 구조. 객체와 비슷한 데이터 구조를 가짐.
# hashes
# 해당 자료구조에서는 문자와 숫자가 구분됨. apple > ""로 문자 구분지어줌.
hset product:1 name "apple" price 1000 stock 50
hget product:1 price # price 를 name, stock 등으로 교체 > 해당 값 조회
# 모든 객체 값 get
hgetall product:1
# 특정 요소 값 수정
hset product:1 stock 40
# 특정 요소 값 증가 / 감소
hincrby product:1 stock 5 # -5 하면 감소
hget product:1 stock
String : key:value ⇒ 좋아요, 재고 관리
list : key:value, value가 리스트 형식인데 deque 형식 ⇒ 최근 방문 페이지
set : 중복 제거, 순서 없음 ⇒ 오늘 방문자 수
zset : set 인데 순서 있는 set. → score : 시간으로 가장 많이 사용 ⇒ 최근 본 상품 목록
hset(hashes) : 객체 형식으로 value 값. 숫자 연산의 편의. hincrby.
Replication (복제)

하나의 마스터 서버가 쓰기 작업을 처리하고, 여러 슬레이브 서버가 마스터의 데이터를 복제하여 읽기 작업을 처리.
Clustering (클러스터 구성)

Redis 클러스터는 데이터를 여러 노드에 분산하여 저장함으로써 고가용성과 확장성을 제공.