본문 바로가기

spring redis4

스프링에서 Redis ACL 적용이 안되는 이유 (RedisCommandExecutionException : NOPERM this user has no permissions to run the ...) 😬 상황스프링 애플리케이션에서 웹 소켓 기능을 Redis로 구현한 뒤, Redis에 아무나 접근할 수 없도록 접근 권한을 추가하기 위해 Redis에서 AUTH 명령어로 id, pw 명령어를 계정을 생성하고 권한을 주었다. 하지만 애플리케이션 웹 소켓 Redis pub/sub 과정에서 하기 이미지와 같은 Redis 관련 예외가 발생하며 정상적으로 기능이 작동하지 않았다.원인WAS 서버 OS인 우분투 22.04 LTS에서apt 패키지 관리자를 통해 설치할 수 있는 기본 Redis 버전은 일반적으로 6.0.x 이다. 하지만 Redis Pub/Sub 채널 액세스 관리 ACL은 6.2 이상의 버전부터 지원했다. 그래서 ACL이 정상적으로 적용되지 않은 것이다. 해결WAS 서버의 Redis 버전을 강제로 최신 버.. 2024. 7. 14.
Spring RedisSerializer 종류와 특징 🤔 배경 프로젝트 진행 중에 Redis Queue와 WebSocket을 활용해서 서비스를 개발하는 과정이 있었다. Spring Data Redis를 사용하기 위해 Config 파일에 RedistTemplate을 Bean으로 등록하게 되었고, 관련해서 Key와 Value에 Serializer도 설정하게 되었다. 해당 과정에서 알게 된 RedisSerializer 종류와 특징에 대해 소개해보려고 한다. Redis는 인 메모리 데이터베이스 이므로 Redis에 데이터를 저장/조회하는 동안에 직렬화/역직렬화가 필요하다. 직렬화는 데이터를 메모리에 저장하기 위해 바이트 스트림으로 변환하는 것을 의미한다. RedisTemplate 설정 Spring Data Redis 의존성을 추가하면 RedisTemplate 객체를.. 2023. 7. 15.
[Spring] Redis 세션 로그아웃, 만료시 관련 처리 작업하기 ✏️ 배경 프로젝트 진행 중 Redis 세션 로그아웃과 만료시 로그를 저장해야 하는 작업이 있었다. Redis 세션 로그아웃과 만료 관련 처리 작업을 하면서 알게 된 ApplicationListener과 Event를 활용해 처리하는 방법에 대해 공유하고자 한다. 📌 필수 등록 Session 관련 작업을 수행하기 위해서 pom.xml에 해당 Session Dependency를 추가해주어야 한다. org.springframework.session spring-session-data-redis 🔎 로그아웃 로그아웃할 때 무언가 처리해야 된다고 생각하면 일반적으로 Security의 LogoutHandler 또는 LogoutSuccessHandler를 구현하고 Security 설정 파일에 등록해서 사용할 것으로 .. 2023. 4. 16.
Spring Redis Session 설정, 특징, 데이터 조회 ✏️ 배경 현재 진행 중인 프로젝트는 운영 중인 서버에서 세션을 별도 레디스를 설치해서 관리하고 있다. 업무 수행 중 Spring Redis Session에 접근해서 세션 별로 분류해서 어떤 작업을 할 필요가 생기게 되었다. 그래서 Spring Redis Session 데이터를 조회하는 방법을 찾게 되었고 해당 과정을 통해서 어떻게 접근하고 데이터를 가지고 오는지 알게 되어 해당 내용을 공유해 본다. 😀 🔎 Redis Session 설정 org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-session-data-redis 세션을 레디스로 관리하기 위해서는 spring-session-data-re.. 2023. 4. 8.