이번 포스트에서는 Redis에서 사용가능한 명령어를 간단하게 알아보고
이를 어떻게 활용할 수 있는지도 생각해보겠습니다.
1) 자료형에 관계없이 사용
1 - 1) Key - Value 쌍의 데이터 만들기
set [key] [value]
get [key]
위의 set과 get 함수를 이용하여 Redis에서 기본적으로 사용하는 데이터 구조인
Key - Value 쌍을 만들고 Value를 가져올 수 있습니다.

1 - 2) 여러개의 Key - Value 쌍의 데이터 만들기
mset [key1] [value1] [key2] [value2] ...
mget [key1] [key2] ...
mset과 mget을 이용하여 한번에 여러개의 Key - Value 쌍을 만들 수 있습니다.

1 - 3) 자료형간의 오버라이드
Redis에서는 파이썬에서처럼 자료형간의 오버라이드가 매우 흔하게 발생합니다.
이전에 만든 name의 데이터를 정수형 데이터로 바꿔보겠습니다.

위의 name의 Value에 정수에 사용가능한 연산자를 사용하면 다음의 결과를 얻을 수 있습니다.

1 - 4) ***유효기간 설정***
이번 포스트에서 가장 핵심이 될 부분이라고 생각합니다.
Redis는 데이터에 유효기간을 설정하여 사용할 수 있습니다.
ttl [key]
expire [key] [seconds]
ttl을 사용하여 남은 유효기간을 확인할 수 있고,
expire를 통해 유효기간을 설정할 수 있습니다.


위와 같은 유효기간은 특히, 로그인 서비스를 만들 때 매우 유용하게 사용할 수 있습니다.
기본적인 로그인의 동작방식은 다음과 같습니다.
- 웹 서버에서 클라이언트가 ID와 PW를 입력하면 DB에서 이를 대조
- DB에서의 대조 결과가 유효하다면 로그인 대상에게 SessionToken 부여
- 부여된 SessionToken을 바탕으로 클라이언트가 서버에 접속
그러나 세 번째 과정에서 서버는 클라이언트의 SessionToken이 유효한지 확인할 수 없습니다.
따라서 다음의 2가지 옵션을 고려하게 됩니다.
- 웹 서버에서 클라이언트에게 로그인 결과에 대한 응답을 주는 시점에서 서버에도 전달
- 그러나 이 방법을 사용하면 클라이언트 - 서버를 이동해야 하므로 부하가 발생합니다.
- DB에 SessionToken을 저장
- 하지만 RDBMS의 경우, 로그인이 성공한 바로 그 타이밍에 데이터를 설정할 수 없음
최종적으로 RDBMS는 Redis를 사용하여 유효 기간이 있는 SessionToken을 생성하여
이를 바탕으로 로그인을 처리할 수 있도록 합니다.
2) 자료형에 따라 사용
2 - 1) 문자열
append [Keyname] "문자열"
append를 통해 문자열 Value에 새로운 문자열을 연결할 수 있습니다.

2 - 2) 정수형
incr [KeyName]
decr [KeyName]
incr와 decr를 사용하여 Key에 해당하는 정수형 Value의 값을 +1 / -1 할 수 있습니다.

'대형 프로젝트 - C# + 유니티로 만드는 MMORPG 게임 개발 > (2) 데이터베이스' 카테고리의 다른 글
| Redis #3 (0) | 2025.03.05 |
|---|---|
| Redis #1 (0) | 2025.03.04 |
| SQL (31) - 트랜잭션 (0) | 2025.03.04 |
| SQL (30) - 대기와 락 (0) | 2025.03.04 |
| SQL (29) - 쓰레드와 캐싱 (0) | 2025.03.03 |