본문 바로가기

redis9

[redis + Spring] Spring Data Redis를 이용한 Transaction 처리 안녕하세요. 오늘은 Java의 Spring 환경에서 Transaction을 적용해보도록 하겠습니다. 의존성 먼저 Spring에서 Redis를 사용하기 위해서 아래와 같은 의존성을 부여하도록 하겠습니다. spring-boot-starter의 버전은 본인이 사용하시는 SpringBoot 버전을 기본적으로 따라가기 때문에 버전은 따로 명시하지 않았습니다. implements("org.springframework.boot:spring-boot-starter-data-redis") 환경설정 아래는 redis와 연결하기 위한 관련된 application.yml 파일입니다. spring: redis: port: 6379 host: localhost Redis도 @Transactional을 이용해서 트랜잭션을 관리할 .. 2021. 7. 22.
[redis] 트랜잭션(Transaction) - 이론편 안녕하세요. 오늘은 redis의 트랜잭션에 대한 이론에 대해서 알아보도록 하겠습니다. 그리고 이후 포스팅에서 실제로 Spring Data Redis를 이용하여 redis의 트랜잭션을 실습해보도록 하겠습니다. 트랜잭션과 Redis 트랜잭션이란 무엇인가요 ? [데이터베이스] 트랜잭션과 격리성 포스팅에서 이전에 저는 트랜잭션에 대해서 별도 포스팅을 한적이 있습니다. 간단하게 말씀드리면 트랜잭션은 나누어지지 않는 최소한의 단위로 만들어 All Or Nothing 전략을 취할 수 있도록 해주는 단위입니다. 즉, 트랜잭션으로 묶게 되면 트랜잭션 내부에서 하나의 로직이 실패하여 오류가 나게되면 모두 취소시키며 그렇지 않으면 모두 성공시키는 것입니다. Redis는 Key / Value 형태의 NoSQL입니다. [Red.. 2021. 7. 18.
[Cache & Redis] 캐싱 전략 (Cashing Strategies) 안녕하세요. Redis와 같은 Caching을 이용한다면 RDB 보다 빠른 write와 read를 경험 할 수 있게 됩니다. 이런 장점을 극대화하기 위한 전략들이 몇가지 존재합니다. 이를 활용하여 우리는 Redis를 다양한 상황에서 사용할 수 있습니다. 오늘은 Redis를 이용한 캐싱 전략(Caching Strategies)에 대해서 알아보도록 하겠습니다. 오늘 포스팅은 아마존의 ElasticCache docs를 번역 및 가공 한 것으로 원문을 보기 원하시는 분들은 Link를 참조해 주시기 바랍니다. 레이지 로딩(Lazy Loading) 이름에 나타나듯이 레이지 로딩은 클라이언트에게서 데이터가 필요로 해질 때 Cache에 로딩하는 전략입니다. DB나 외부 API에 접근하기 전 Cache를 먼저 확인 한 .. 2021. 1. 30.
[Redis] Hashes을 이용하여 매핑 만들기 ( Strings VS Hashes ) 안녕하세요. 우리는 저번시간에 [Redis] Redis 자료구조 알아보기 포스팅을 통해 Redis가 가지고 있는 유용한 자료구조와 그 사용법 및 활용되는 곳에 대해서 간단히 알아보았습니다. 오늘은 이어서 제가 토이 프로젝트에 사용한 방법에 대해서 여러분들께 공유드리는 포스팅을 한번 진행해보려고 합니다. 오늘 여러분들께 보여드릴 것은 Hashes 자료구조를 이용하여 매칭되는 서로의 Key와 Value를 뒤집어서도 매핑할 수 있게하는 것입니다. 문제 상황 기존에 프로젝트에서 Tag를 저장하고 있는 테이블이 있었습니다. 이 테이블은 primary key인 id 값과 그 이름인 value 값을 가지고 있습니다. id와 value는 1 대 1 대응이되고 있었습니다. 사용하는 곳은 여느 태그들과 마찬가지입니다. 만.. 2020. 12. 31.
[Redis] Redis 자료구조 알아보기 안녕하세요. 이전 [Redis] Redis의 기본 명령어 포스팅에서 Redis의 기본적인 명령어와 이와 연관된 자료구조에 대해서 간단하게 알아본적이 있습니다. Redis는 다양한 자료구조를 기본적으로 제공하고 있는데 상당히 높은 생산성을 제공합니다. Redis 자료구조를 잘 알고 적절하게 사용한다면 생산성 및 퍼포먼스도 얻을 수 있습니다. 따라서 오늘은 여러분들과 Redis의 자료구조에 대해서 알아보는 시간을 여러분들과 가져보려고합니다. redis.io에 소개되고 있는 자료구조 Redis는 아래의 자료구조를 공식적으로 지원하고 있습니다. Strings : Vinary-safe한 기본적인 key-value 구조 Lists : String element의 모음, 순서는 삽입된 순서를 유지하며 기본적인 자료구.. 2020. 12. 24.
[Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisRepository 편 [Redis] 캐시(Cache)와 Redis [Redis] Redis의 기본 명령어 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisRepository 편 안녕하세요. Redis 4번째 시간입니다. 오늘은 Spring Data Redis로 Redis에 접근하는 또 다른 접근법을 알아보고자 합니다. 우리는 이전 포스팅에서 RedisTemplate을 통해 Redis에 Strings, List, Set, Sorted Set, Hash에 접근하는 방법을 배웠습니다. 오늘 배우는 RedisRepository는 Spring Data JPA 처럼 객체를 기반.. 2020. 8. 18.
[Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Redis] 캐시(Cache)와 Redis [Redis] Redis의 기본 명령어 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisRepository 편 안녕하세요. 오늘은 Redis에 관련된 이야기 3번째입니다. 저번시간까지 우리는 캐시(Cache)에 대한 간단한 이론, 그리고 Redis의 기본 명령어에 대해서 알아보는 시간을 가졌습니다. 이번 포스팅에서는 Java에서 Spring Data Redis를 이용하여 Redis와 통신하는 방법에 대해서 알아보도록 하겠습니다. Redis에 접근하기 위해서 Spring Data Redis 라이브러리를 .. 2020. 8. 12.
[Redis] Redis의 기본 명령어 [Redis] 캐시(Cache)와 Redis [Redis] Redis의 기본 명령어 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisRepository 편 안녕하세요. 오늘은 저번 시간에 이어서 Redis에 대해서 추가적으로 알아보는 시간을 가지겠습니다. 오늘 알아볼 내용은 Redis의 기본 명령어입니다. Redis의 자료구조와 명령어는 Redis를 사용하는 Client를 개발할 때에도 사용되므로 잘 알아두어야 합니다. 오늘은 우리가 Redis에서 가장 자주 사용하는 자료구조인 Strings, List, Set, Sorted Set, Hash, .. 2020. 8. 7.
[Redis] 캐시(Cache)와 Redis [Redis] 캐시(Cache)와 Redis [Redis] Redis의 기본 명령어 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisTemplate 편 [Java + Redis] Spring Data Redis로 Redis와 연동하기 - RedisRepository 편 안녕하세요. 현대의 웹 서비스에서는 Cache가 정말 중요한 역할을 합니다. 서비스의 규모가 커져감에 따라 모든 요청을 DB 직접 참조 또는 API 호출로 처리한다면 성능과 에러 등과 같은 이슈가 발생할 수 밖에 없습니다. 과도한 요청이 문제가 되기 시작하면 캐시(Cache)에 대해서 고려할 수 밖에 없습니다. 오늘은 캐시(Cache)와 Redis의 특징에 대해서 여러분과 이야기해보고자 합니다.. 2020. 8. 5.