DBMS/Redis

    Redis에서 트랜잭션 처리 방법

    첫 번째 방법 Redis에서 트랜잭션을 위한 커맨드를 제공한다. (MULTI/EXEC/DISCARD/WATCH) MUlTI: 트랜잭션 진입 EXEC: 커밋 DISCARD: 롤백 Watch의 경우 get & set과 같이 락이 필요한 경우, WATCH 명령을 통해 낙관적 락을 사용할 수 있음. WATCH 사용 시, Race Condition이 발생하면, 트랜잭션이 실패해서 재처리가 필요함. 한계점 1. 해당 명령을 통해, 트랜잭션 내의 중간 명령의 결과를 받아서, 다음 명령에 대한 분기처리를 할 수 없다 무슨 말 이냐면, 예를 들어서 다음과 같이 incr 명령의 결괏값에 따른 분기 처리 등을 할 수 없는 한계가 존재한다 # 수도 코드 if (incr, "key" > 1 ) { pexpire("key", 1..

    [Redis] Redis 운영 관리 정리

    Redis 운영 관리를 정리한 내용입니다. Redis의 이해 Redis의 특성 Key-Value 스토어 컬렉션 지원 Pub/Sub 지원 디스크 저장: Redis는 인메모리 DB이면서 memcached 등과 다르게 디스크 저장도 지원. RDB: 현재 메모리의 상태를 디스크에 저장. AOF: 지금까지 실행된 업데이트 관련 명령어의 집합. (set/del 등의 명령어를 기록해둠) Redis에서는 가능하면 두 개를 모두 사용하는 것이 좋다지만, 디스크를 사용해서 저장하는 만큼 성능 손실은 어느 정도 감수해야 함. 복제 Redis는 마스터/슬레이브 Replication을 지원. 마스터에 장애가 발생하면 슬레이브로 서비스하거나 마스터의 부하가 많을 때에는 슬레이브를 이용해서 읽기를 처리할 수도 있음. Redis v..

    [Redis] Redis 세미나 정리

    우아한 Redis 세미나를 보고 제가 필요한 부분 위주로 정리한 글입니다. Redis 특징 In-Memory Data Store 메모리에서 데이터를 처리하므로 빠른 속도. 다양한 자료구조를 지원 Strings, set, sorted-set, hashes, list Single Thread O(n) 명령어를 주의해야 한다. Redis 자체가 Atomic을 보장해준다. (싱글 스레드라) Lost update 등 문제가 발생하지 않는다. (잘못 사용하는 경우 제외) Cache 구조 Look aside Cache Write Back 쓰기가 빈번한 작업에서 사용. 일단 캐시에 저장해뒀다가, 특정 시점마다 한 번에 DB에 저장하는 구조. 단점 휘발성인 메모리에 먼저 저장해두기 때문에, 장애가 발생하면 데이터가 사라..