https://github.com/tporadowski/redis/releases
.zip 압축을 풀고 sever 를 실행시킨다음 cli.exe 로 클라이언트에서 테스트 해볼 수 있다
서버
클라 기본 상태
key1 으로 값 hello world를 저장
get 으로 가져올 수 있다
즉 이렇게 메모리상에 들고 있게 되는 것이다
서버를 끄고 get 을 요청하면 아무 일도 일어나지 않게 된다, 데이터도 역시 날라가게 된다
다시 서버를 키고 get 을 해보면 nil 이 나온다
set user:name "abc"
get user:name
"abc"
이렇게 나오고
append user:name " is good"
get user:name
"abc is good"
이 된다
incr : 11은 문자인데 문자를 숫자로 인식하여 1을 증가한다음 12로 찍는 명령어
mset, mget : 여러개를 설정하거나 가져올 수 있는 것
기존 키 값을 set 으로 다시 쓰게 되면 덮어써지게 된다
ttl : 유효 시간이 얼만나 남았는지 확인, -1 , 이면 무한대를 말한다
expire : 유효시간 설정
유효시간을 설정하고 ttl 을 호출하면 남은 시간을 볼 수 있다
서버에서 세션에 대한 정보를 DB 에서도 처리 할 수 있다
먼저 ID 와 pw 가 맞는지는 웹서버에서 검증한다 그리고 이 유저가 맞는지는 DB 를 통해서 인증을 거치는데
인증을 통과했다면 인증 받은 사람이라는 토큰을 클라에게 전달해준다
username:세션ID 를 하나의 컬럼에 설정한다음 유효시간을 별도로 설정한다
세션 id 가 존재하는지에 대해선 username 의 세션 ID를 확인하여 존재하는 유저인지 알 수 있고
관계형 DB 에선 이렇게 username 의 세션 ID를 클라에게 던져주는 형태가 된다
즉 클라가 서버에 다시 뭔가 할때 세션ID를 던진다
이렇게 되면 매번 서버와 DB 를 왔다갔다 하며 유효시간을 별도로 설정해줘야 한다는 것등의 별도의작업 및
불필요한 비용이 발생 할 수 있다 어차피 세션 ID가 서버에선 유효한 값 이므로
(클라에서 변조된것인지 서버에서만 판단해 주면 됨으로) 이때 redis 가 좋은대안이 될 수 있다
'서버(Server) > DB' 카테고리의 다른 글
redis (3) 자료구조 (0) | 2023.04.06 |
---|---|
NOSQL - Redis (1) (0) | 2023.04.04 |
[DB] 쓰기와 읽기, 스래드와 캐시 & 대기와 락, 트랜잭션 (0) | 2023.04.03 |
[MSSQL] 예상 실행계획 (0) | 2023.04.02 |
Clustered(바로 찾기), Non-Clustered (경유해서 찾기) (0) | 2023.03.03 |