2024.05.03 - [Spring/대용량 트래픽] - Java에서 Redis 명령어
Java에서 Redis 명령어
2024.04.30 - [Spring/대용량 트래픽] - Redis 다양한 데이터 타입 알아보기 Redis 다양한 데이터 타입 알아보기2024.04.05 - [Spring/대용량 트래픽] - Redis CLI 실습lsdiary.tistory.com이전까지 Redis CLI를 통해서 다
lsdiary.tistory.com
이전 글에서 Java에서 기본적인 Redis 명령어들에 대해 알아봤다.
Transaction
우선 이번에 얘기할 내용을 다루기 전에 트랜잭션이 무엇인지 부터 알아야한다.
트랜잭션이란? IT업계 입장에서 본다면 거래 or 처리의 단위라는 의미이다.
몇개의 예시를 보자
- HTTP Transaction
- HTTP Request + HTTP Response
- DB Transaction
- Query의 묶음
그렇다면 Redis에서의 트랜잭션이란? 여러개의 명령들에 대해 내부 queue에 두고, 트랜잭션이 완료되면 일괄처리하는 것을 말한다. 당연히 트랜잭션이 완료되기전에는 해당 명령들은 다른 요청들과 격리된다.
** 운영체제에서 Lock을 생각하면된다! (참고로 데이터베이스 내부에서는 Locking Protocol로 관리한다.)
RDB와의 차이점?
- RDB는 트랜잭션이 종료되지 않은 상태에서 설정한 값 조회 가능
- Redis는 안됨(일괄처리 하기 때문)
특징
트랜잭션과 관련된 명령어들
- MULTI : 트랜잭션 시작
- SET 으로 queue에 담아둔다.
- EXEC : 그동안 내렸던 명령들의 집합 실행
- queue에 담긴 명령들 일괄 실행
- DISCARD : 트랜잭션 취소
- WATCH : 동시에 같은 키 수정하는 상황에서 트랜잭션 취소(해당 트랜잭션 모두롤백)
- 특정 키값을 바라보고있다라는 의미로, MULTI전에 먼저 실행해줘야 한다.
- WATCH [key] : 모니터링하고자 하는 key
- 동시성 제어의 역할을 한다.
Redis-cli 로 연습을 해보자.
- 정상실행
exec / discard 되기전에는 key, key2의 값을 다른 트랜잭션에서는 모름
- 잘못된 키워드 접근
전부 롤백
- 잘못된 인자값 설정
잘못 접근된 값만 롤백되고 나머지는 정상실행 위에서 key3는 조회되지 않음.
이렇게 Redis에서 트랜잭션에 대해 알아봤다. 다음 글은 Redis에서 다른 명령어를 알아보겠다.
2024.05.07 - [Spring/대용량 트래픽] - Redis Key, Scan 명령어
Redis Key, Scan 명령어
2024.05.07 - [Spring/대용량 트래픽] - Redis Transactions Redis Transactions2024.05.03 - [Spring/대용량 트래픽] - Java에서 Redis 명령어 Java에서 Redis 명령어2024.04.30 - [Spring/대용량 트래픽] - Redis 다양한 데이터 타입
lsdiary.tistory.com
'Spring > 대용량 트래픽' 카테고리의 다른 글
Redis Cache 이론 (0) | 2024.05.07 |
---|---|
Redis Key, Scan 명령어 (0) | 2024.05.07 |
Java에서 Redis 명령어 (0) | 2024.05.03 |
Redis 다양한 데이터 타입 알아보기 (0) | 2024.04.30 |
Redis CLI 실습 (0) | 2024.04.05 |