Window 10 redis 설치 및 설정

klmin·2024년 9월 28일

윈도우에 redis를 설치해 보겠다.

내 윈도우 환경이다.

윈도우에 파일을 받아서 설치하는법과 wsl을 설치해서 하는법이 있다. 나는 wsl로 설치해보겠다.

설치 git : https://github.com/microsoftarchive/redis/releases

저 사이트에서는 3점대 버전으로 파일을 받아 실행하는 식으로 redis 를 설치할 수 있다.

다음은 공식홈페이지에 나온 설치방법이다.
https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-windows/

  1. wsl 접속 (윈도우에서 wsl은 따로 설치해야한다.)
  • wsl
  1. GPG 키 다운로드 및 변환

  1. 저장소 생성
  • echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
  1. 저장소 정보 업데이트
  • sudo apt-get update
  1. redis 다운로드
  • sudo apt-get install redis
  1. redis 실행
  • sudo service redis-server start
  1. redis 접속 및 정보확인
    7.4 버전이 설치된걸로 확인된다.
  • redis-cli

  • info

  • 명령어 정리

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis

redis-cli
info
  1. 데이터 테스트
  • set testkey
  • get testkey
  • del testkey
  • get testkey

redis desktop 설치

  • 다운로드 된 파일을 확인한다.
  • 다운로드 된 실행해서 설치한다.
  • New Connection으로 서버에 연결한다.
  • 기본정보를 적는다. password 등 따로 설정하지 않은 상태면 IP랑 Port만 적으면된다.
  • 테스트 데이터를 입력한다.
  • refresh 아이콘을 누르면 새로고침되고 저장한 key가 나온다.
    key를 누르면 value도 확인할 수 있다.

환경설정

  • root 로 전환 후 /etc/redis에 redis.conf 파일이 설정 파일이다.

  • 외부접속
    bind의 127.0.0.1이 로컬만 접속인데 외부 접속을 허용하려면
    bind를 0.0.0.0 ::1로 변경해줘야한다.

  • port
    port 번호가 변경된다.

  • timeout
    외부에서 접속 후 특정시간동안 명령이 없으면 자동 close 되는 시간이다.
    초 단위이다. 0이면 자동종료를 하지않고 600등으로 입력하면 어플리케이션이나 클라이언트에서 최초 연결 후 명령이 10분동안 없으면 연결이 자동종료된다.

  • requirepass
    처음에 주석으로 되어있는데 주석을 해제하고
    requirepass XXX 를 입력하면 redis-cli 접속시 비밀번호를 필요로 한다. redis-cli, redis desktop manager, springboot 접속시
    requirepass가 선언되어있다면 비밀번호를 입력해야 한다.

  • thread
    기본적으로 redis는 명령실행과 네트워크 I/O가 싱글스레드로 동작하는데
    io-threads를 설정하면 명령실행 자체는 싱글스레드로 처리하지만 네트워크 I/O를 멀티쓰레드로 처리할 수 있다고한다.
    io-threads-do-reads는 읽기 관련된 멀티쓰레드 설정이고
    io-threads는 쓰기 관련 멀티 쓰레드 설정이다.
    io-threads를 on하면 많은 클라이언트의 요청을 멀티쓰레드로 처리할 수 있고 그만큼 컨텍스트 스위칭이 발생한다고 한다.

  • maxmeory
    메모리를 얼마나 사용할지 정하는 옵션이다. 기본값은 0 이다.
    나는 2gb로 바꿨다.

  • maxmoery-policy
    메모리가 다 찼을때 삭제하는 정책이다. 새로운 키가 들어왔을때 어떻게할지 정하는 정책이다.
    나는 allkeys-lru로 선언을 했다.

    • TTL - redis에 저장시 유효기간을 설정할 수 있는 옵션이다.
      유효시간 후 자동 삭제됨.
      유효시간을 설정하지 않으면 -1로 저장됨.(초단위이다)
      아래 사진을 보면 57초와 -1을 확인 할 수 있다.
      명령어 혹은 어플리케이션 레벨에서 TTL 지정이 가능하다.
      set key value 단위 시간
        ex) set testkey1 testvalue1 EX 60

      redis-cli 명령어

      redis desktop 확인


      springboot

  • noeviction(기본값) - 메모리가 다 차면 나머지는 오류를 반환한다.
  • allkeys-lru - 가장 오래동안 사용하지 않은 키 삭제
  • volatile-lru - TTL이 선언된 키 중에 가장 오래 사용안한 키 삭제
  • allkeys-random - 모든 키 중에 임의로 삭제
  • volatile-random - TTL이 선언된 키 중에 임의로 삭제
  • volatile-ttl - TTL이 가장 짧게 남은 키 삭제
  • allkeys-lfu - 모든 키 중에 자주 사용되지 않는 키 삭제
  • volatile-lfu - TTL이 선언된 키 중에 자주 사용하지 않는 키 삭제
  • maxclient
    동시 요청시 최대 client 이다.
    conf는 주석이 되어있는데 기본 설정은 10000이다.

redis 재실행 및 확인

설정을 다 하고 재실행 하였다.

  • desktop 접속

    • 비밀번호를 설정하였기때문에 기존에 정보로는 접속에 실패한다.
    • 비밀번호 입력
    • 접속완료
  • redis-cli 접속

    • 기존 명령어 실행시 실패한다.
      AUTH 로 비밀번호 입력 후 명령어 실행을 해야한다.
  • springboot

    기존에는 host와 port만으로 접속된다.
    하지만 비밀번호 설정시에는 명령어 실행시 오류가 발생한다.

    • 테스트코드

    • 기존설정방식.

    • 실행

    • 비밀번호 추가

    • 실행

  • maxmemory, maxmemory-policy 확인(redis desktop)
    2gb, allkeys-lru를 확인할 수 있다.
profile
웹 개발자

0개의 댓글