이론/백엔드 개념정리
2. Redis String관련
블스뜸
2025. 4. 30. 13:35
- keys * : 데이터 베이스 내의 모든 키 조회
- String관련
- set을 통해 key:value 세팅
- set user:email:1 tera199810@gmail.com
- 단, 이미 존재하는 키이면 덮어쓰기가 된다 - nx(not exist)를 통해 중복입력 방지
- set user:email:1 tttt@gmail.com nx
- 같은 키가 존재하면 pass, 없으면 set - ex(expiration)를 통한 유효기한 설정
- set user:email:2 abcd@gmail.com nx ex 10
- 10초간 해당 데이터를 유지(nx는 상황에 따라 사용)
- expire <Key> 초단위 시간 : 유효기한을 나중에 설정해줄 때
- TTL(Time To Live) 이라고 부르기도한다
- Redis는 영구적인 데이터 보관을 목적으로 하지 않기 때문에 유효기한을 설정하는 편이다
- 활용 : 사용자 인증정보 저장(ex-refresh 토큰)
* set user:1:refresh_token <쿠키값> ex 10000
* 해당 토큰을 통해 매번 인증할 필요없이 일정 시간동안 인증을 자동적으로 진행한다
* at(access token) : 유효기한이 짧은 토큰
* rt(refresh token) : 유효기한이 긴 토큰
* 인증요청은 매우 빈번한데(탭을 옮기거나 할때마다 진행) 느린 db를 사용하면 응답속도가 느려진다 - del을 통한 키삭제
- del <Key> : 해당 Key 삭제
- flushdb : select된 데이터베이스의 모든 데이터 삭제
- set을 통해 key:value 세팅
- redis 활용 예
- 좋아요 기능
1. rdb에서 관리하게되면 동시성 문제가 발생할 수 있다
2. redis는 싱글 스레드이기 때문에 동시성 문제가 발생하지 않는다
- 재고관리
1. 좋아요기능과 마찬가지
* 사용 예
set posting:1:likes 0
incr posting:1:likes : 특정 Key의 Value를 1만큼 증가
decr posting:1:likes : 특정 Key의 Value를 1만큼 감소
- 캐싱(임시저장) 기능
0. redis에서 조회했던 기록이 있는지 확인한다
1. 최초 조회시에는 rdb에서 값을 받아온다
2. 사용자에게 보여주기 전에 redis에 저장
3. 사용자에게 보여준다
4. 사용자가 종료하고 다시 열람하면 0번에서 값을 가져온다
** 이 때 데이터는 Json을 표준으로 사용한다