쌩로그

Redis 설치하기(feat. windows) 본문

DB/NoSQL

Redis 설치하기(feat. windows)

.쌩수. 2023. 7. 9. 10:58
반응형

목록

  1. 포스팅 개요
  2. 본론
      2-1. Redis 설치
      2-2. Redis 설정 권한 주기
      2-3. Redis 설정
      2-4. 윈도우 시스템의 서비스를 활용하여, Redis-cli 실행
      2-5. 윈도우 시스템의 서비스를 이용하지 않는 경우
  3. 요약

1. 포스팅 개요

또 과정 포스팅이다..;;ㅋㅋ 그래도 나중에 나를 위해..

윈도우즈에 Redis를 설치하고, 실행하여 접속해보고자 해당 포스팅을 하게 되었다.

명령어는 다른 블로그들이 참, 잘 정리해놨다..

✅ 참고! 스프링부트와 연계되는 부분은 없다. 단순히 windows로 Redis를 이용하기 위한 방법이다.

"나는 왜 Redis를 사용하게 되었는가?"
부터 얘기해보고자 한다.

JWT 토큰 관리를 위해서 자료들을 찾아보다가,
부캠 메인 프로젝트 팀원이 JWT 토큰 관리를 위해 Redis를 사용했는데, 왜 썻는지 몰랐다.

그런데 찾아보니 이유가 있긴 했다.

JWT 만료기간을 어떤 서비스에는 AccessToken은 하루, refreshToken은 2주로 하는 반면에,

이전 프로젝트에선 AccessToken은 60분 즉 1시간, refreshToken은 24시간으로 정했다.
이번 프로젝트도 이전 프로젝트와 비슷한 규모를 가지기 때문에,
일단은 시간을 이렇게 정하기로 했다.

이와 관련해서 고민했던 부분이
"RefreshToken을 DB에 넣어야 할까 말까..?" 라는 고민을 했었는데.
// DB를 활용하게 되면, 일단 토크의 유효성을 검증하기 위해 조회 쿼리를 날려야 한다.(비용+1)
// 조회를 했는데 없으면 생성(insert)쿼리 날려야 하고,(비용+1)
// 생성을 했으면 검증을 위해 조회 쿼리를 중간 중간 날릴 것이다.(비용+n)
// 만약 만료되거나 쓰지 못하게 된 Token이 생기면 삭제(delete)쿼리 날려야 한다.(비용+2 , 만료 검증을 위해 조회 쿼리 한번, delete 쿼리 한번, 총 2번)
// 삭제했으면, 또 생성해준다. 역시 생성(insert)쿼리를 날린다. (비용 +1)

RefreshToken은 그렇다고 하자.
AccessToken은 RefreshToken보다 더 많은 비용이 발생할 것이다.

그래서 접근이 빠르고, 비용이 보다 저렴한 InMemmory방식으로 데이터를 캐싱하는 Redis를 채택하게 되었다.

오늘은 Redis를 윈도우에 설치하고 간단한 명령어를 알아보기 위해 포스팅을 하게 되었다.

다시 말하지만, 이번 포스팅은 스프링 부트와 연계되는 부분이 없는 점 참고 바란다.

2. 본론

2-1. Redis 설치

먼저 윈도우 사용자가 Redis의 공식 홈페이지로 가면 찬밥 신세가 될 것이다.
거기에는 윈도우 사용자를 위한 Redis 다운로드가 없다...;;

그래서 Redis 공식 깃허브로 가서 다운받아야 한다.
해당 사이트에서 우측에 Releases가 있다.

거기 들어가서 msi 파일을 받으면 된다.

다운을 받고 실행을 해주자.

만약 msi파일을 관리자 권한으로 실행하고 싶은데, 관리자 권한으로 실행이 안 보인다면..

이 링크를 확인해보면 된다.

Next~

동의 후, Next~

설치된 레디스 폴더를 환경 변수로 넣을지 말지 여부를 알아서 체크해주거나 말거나 한 후, 역시
Next

포트 설정 후, Next
(기본 6379)

Memory를 정해줄 수 있음. 알아서 해준 후, Next

관리자 권한으로 실행하면, 다음과 같이 Install 왼쪽에 방패 모양 같이 있음
결론은 Install

완료.

2-2. Redis 설정 권한 주기

설정파일을 수정하기 전에, 해줘야 될 것이 있다.
윈도우에서 설정파일을 수정할 권한을 윈도우 사용자(부팅 접속 계정)에게 줘야한다.
그렇지 않고 수정하려하면, 액세스 거부된다.

만약에 바로 설정&저장되면, 이 내용은 스킵해도 좋고, 그렇지 않으면, 참고하면 된다.

먼저 설정파일(redis.windows.conf, redis.windows-service.conf)을 우클릭 후, 속성에 들어간다.

보안 탭에 들어간 후, 편집을 해준다.

윈도우 사용자를 지정하고,
모든 권한을 허용 한다.
그리고 확인.

끝.

2-3. Redis 설정

Redis를 설치하면, 기본적으로 생성되는 폴더에 설정 파일이 두 개가 있다.

redis.windows.conf, redis.windows-service.conf

윈도우 서비스를 이용할 땐, redis.windows-service.conf
윈도우 서비스를 이용하지 않고, 직접 서버를 수동으로 on/off할 땐, redis.windows.conf 를 설정해주면 된다.

많은 설정 내용 중, 포트, 비밀번호, 로그 파일, 최대 메모리를 지정하는 부분을 알아보도록 하자.

먼저 포트 번호 설정이다.
Ctrl+F(찾기)에서 GENERAL을 하면, port 부분이 있다.
기본적으로 6379 혹은 설치할 때, 지정한 port번호가 저장되어있는데,
65535 내의 임의의 숫자를 지정하면 된다.

✅참고로 나는 6379 앞에 '8'을 붙여서 86379를 줬다가 오류가 났었는데, 왜 났는지 봤더니... 포트번호 범위가 65535 이내여야 하는 것을 생각지 못하고, 막 주다가 오류가 났었다.
(나름 트라블 슈팅임;;)

그리고 PASSWORD를 지정해줄 수 있다.
Ctrl + F(찾기)에서 SECURITY를 검색하고, 두 번 정도 enter를 누르면 된다.

거기서 # requirepass foobared 부분을 찾는다.
주석 해제("#" 제거) 후 비밀번호를 설정해주면 되는데,
foobared 부분에 설정할 비밀번호를 지정해주면 된다.

'설정한 비밀번호'는 후에 redis-cli를 접속할 때, -a 옵션 혹은 auth 명령어를 통해서 들어갈 수 있다.

위의 그림과 같이 설정되었다면, redis-cli를 실행했을 때, 해당 명령어를 통해서 비밀번호를 인증할 수 있다.

auth SsangRedis!!

이렇게도 가능하고, 혹은

CLI로 접속할 때 -a 옵션을 줌으로써 접속가능하다.

redis-cli -a SsangRedis!!

이렇게 말이다.

그리고 다음과 같이 log를 어디 파일에 찍을건지, 지정할 수 있는데, 아래와 같이 기본값으로 설정되어있지만, 역시 커스터마이징 해줄 수 있다.

log는 나중에 한번 참고해봐도 좋다.
(나는 지금 별로 안 쓰고 있어서 할 말이 별로 없음..;;)
log파일의 내용은 대강 이렇다.
// strated를 했는데,
// 어떤 포트로 실행되고, 접근했는지,
// PID는 어떻게 되는지
에 대한 정보들이 나온다.

그리고 maxmemory(최대 메모리)를 설정해줄 수 있다.
처음엔 설치할 때 지정해준 대로 설정되어있다.

끝.

2-4. 윈도우 시스템의 서비스를 활용하여, Redis-cli 실행

윈도우의 서비스를 이용하려면, redis.windows-service.conf파일을 커스터마이징해주면 된다.
그리고 윈도우의 서비스에서 Redis를 찾아서 아래와 같이 다시 시작해주면,
redis.windows-service.conf에서 설정해준대로 실행된다.

만약 Redis 기본 폴더의 redis-cli.exe를 GUI로 실행하려고한다면, 6379포트로만 연결된다.
그래서 conf파일에 포트를 6379로만 설정해야만 할 것이다.
(GUI로도 포트를 지정해줄 수 있겠지만, 내가 할 줄 모른다.)

다른 설정은 그대로 적용되지만, 유독 포트번호만 그렇다...
여튼 참고해서 실행하면, 다음과 같이 나온다.

만약,
6379 포트가 아닌 다른 포트를 이용한다면, 윈도우의 커맨드(cmd)를 이용하면 된다.

윈도우의 커맨드(cmd)를 관리자 권한으로 실행한다.
다음 그림은 윈도우-시작-cmd 검색하면 나온다.

이후, 다음 명령어를 통해서 실행할 수 있다.

> cd redis폴더
> redis-cli -p '6379 말고 다른 port'

다음그림 그에 대한 결과다.

2-5. 윈도우 시스템의 서비스를 이용하지 않는 경우

이 방법은 수동으로 실행하는 방법이다.

나는 참고로,
그냥, 포트번호를 6379로 주고, 다른 설정만 바꿔서 윈도우 서비스로 자동 실행하는 것을 추천한다.. 그게 제일 편하더라..

일단 서비스에서 Redis를 중지해준다.

설치 후, 생성된 Redis 폴더에서 redis-server.exe를 실행하면 된다.
이 파일이 윈도우 서비스가 하는 일을 대신 해준다고 보면 된다. 수동으로..

그리고 redis-cli.exe를 실행하면 된다.

만약 redis-server.exe를 실행하지 않고, redis-cli를 실행하면 다음과 같이 커넥션 에러가 뜰 것이다.

그리고,
혹시 6379외 다른 포트를 이용하고 싶다면, redis.windows.conf에서 포트를 변경,저장해주면 된다.

redis-server.exe를 통해 Redis를 실행할 때는 redis.windows.conf를 설정해줘야 한다.
이전에는 redis.windows-service.conf를 설정해주었지만, redis.windows.conf를 설정해주면 된다.
(참고로 redis.windows-service.conf를 수정하는 방법과 동일하므로 과정 생략)

redis.windows.conf를 설정 파일로 지정해준 뒤,
윈도우 커맨드(cmd)에서 해당 conf파일을 지정하면서 서버를 실행 시켜주면 된다.
그리고 포트를 지정하면서 redis-cli를 실행해주면 된다.

> redis-server.exe redis.windows.conf  // redis.windows.conf 설정을 적용하면서 server 실행
> redis-cli.exe -p 5555 // 레디스 폴더에서 포트번호 지정하면서 redis-cli 실행

다음은 그에 대한 결과다.

끝.

3. 요약

토큰 관리를 위해 Redis를 도입했고,
local에서 Redis를 사용하고자 윈도우에서 Redis를 설치, 설정, 실행하는 방법에 대해 알아보았다.

개인적으로는 윈도우 서비스를 이용하는 방법이 가장 편했다.
왜냐하면, 스프링 부트와 연계하면서, redis-cli를 바로바로 확인할 수 있도록 해야했는데,
서버를 일일이 켜주고, 굳이 띄어놓지 않아도 될 서버실행 창을 띄우고 있는 것도 귀찮고, 복잡했다.

(TMI지만, 나는 실행 창이 많은 걸 그리 좋아하지 않는다. 최소한만 있는 걸 선호한다.;; )

그래서 포트번호는 6379,
설정파일은 service.conf,
윈도우 서비스로 Redis를 자동 실행하는 방법이 가장 편했던 거 같다.

이제 곧 Redis를 이용해서 JWT를 어떻게 관리했는지 포스팅 할 예정이다.

끝이다.

참고 블로그
https://pamyferret.tistory.com/9
https://kitty-geno.tistory.com/133
https://velog.io/@dlehden/redis-%ED%8F%AC%ED%8A%B8-%EB%91%90%EA%B0%9C-%EC%8B%A4%ED%96%89-windows-%EC%97%90%EC%84%9C
https://inpa.tistory.com/entry/REDIS-%F0%9F%93%9A-Window10-%ED%99%98%EA%B2%BD%EC%97%90-Redis-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

728x90
Comments