이 경로에 가서 다운로드 파일을 받으면 됩니다.
https://github.com/microsoftarchive/redis/releases
윈도우용 설치파일인 Redis-x64-3.2.100.msi
를 눌러서 받습니다.
계속 next를 눌러줍니다.
redis 기본포트는 6379
입니다.
설치가 잘 되었는지 확인은 작업관리자나 6379 포트가 Linstening 중인지 확인해볼수 있습니다.
그다음 C:\Program Files\Redis
의 redis-cli.exe
를 확인합니다.
redis-cli에서 ping
을 치면서 PONG
으로 응답해주면서 제대로 실행되는 것입니다.
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 exec -it {redis containerID} redis-cli
#> redis-cli -h redis설치된 서버 IP -p 6379
#> SELECT 1
1~15 까지 DB가 정해져있다.
SELECT 0 --> default
#> keys *
#> get "key_name"
해당 키의 value를 가져옴
#> set key_name Hello
key_name 이라는 키에 Hello 값을 저장
#> del key_name
#> flushall
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분)동안 지속됩니다.