Redis 설치 및 Redis 세션 사용방법

devdo·2022년 3월 5일
0

서버 백앤드 스터디

목록 보기
12/17

window 설치

이 경로에 가서 다운로드 파일을 받으면 됩니다.
https://github.com/microsoftarchive/redis/releases

윈도우용 설치파일인 Redis-x64-3.2.100.msi 를 눌러서 받습니다.

계속 next를 눌러줍니다.

redis 기본포트는 6379입니다.

설치가 잘 되었는지 확인은 작업관리자나 6379 포트가 Linstening 중인지 확인해볼수 있습니다.

그다음 C:\Program Files\Redisredis-cli.exe를 확인합니다.

redis-cli에서 ping을 치면서 PONG으로 응답해주면서 제대로 실행되는 것입니다.


docker 설치

docker network create redis-net

network ls

docker run --name my-redis -p 6379:6379 --network redis-net -d redis redis-server --appendonly yes

로 진행해주면 됩니다.

docker에서 바로 redis-cli 접속

docker exec -it {redis containerID} redis-cli

Redis 기본 명령어

  1. 레디스 접속
#> redis-cli -h redis설치된 서버 IP -p 6379
  1. DB Select
#> SELECT 1

1~15 까지 DB가 정해져있다.

SELECT 0 --> default

  1. 모든 키 검색
#> keys *
  1. 특정 키 검색
#> get "key_name"

해당 키의 value를 가져옴

  1. 특정 키에 value를 저장
#> set key_name Hello

key_name 이라는 키에 Hello 값을 저장

  1. 특정 키 삭제
#> del key_name
  1. 모든 키 삭제
#> flushall

출처 : https://mosei.tistory.com/entry/Redis-%EB%A0%88%EB%94%94%EC%8A%A4-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4


Redis - session 저장 (SpringBoot)

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-data-redis'
compileOnly 'org.springframework.session:spring-session-data-redis'

application.yml

spring:
  redis:
    host: {redis 설치한 ip주소}
    port: 6379
  session:
    timeout: 600
    store-type: redis
    redis:
      flush-mode: on-save
      namespace: spring:session

TestController

package com.dsg.redissessionexample.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

@RestController
public class TestController {

    @GetMapping
    public String hello() {
        return "hello22~";
    }

    @GetMapping("/doSetSession")
    public String doSetSesstion(HttpSession session) {
        session.setAttribute("a", 10);
        return "세션 설정완료!";
    }

    @GetMapping("/getSession")
    public int getSession(HttpSession session) {
        return (int) session.getAttribute("a");
    }


}

세션 정보는 배포중일 때 날아갑니다. redis에 저장한다면 배포중일 때도 세션이 날아가지 않습니다.

redis에 session정보가 저장되면 새로 배포해도 이상태가 600(5분)동안 지속됩니다.



참고

profile
배운 것을 기록합니다.

0개의 댓글