본문 바로가기
관리자

Programming-[Backend]/Redis, Memcached

(3)
분산 락 멀티 인스턴스 환경일 때 특정 key값에 대해서 동시성(동시 수정) 방지를 위해 사용한다. Redis의 싱글 스레드라는 특성, Redisson 라이브러리를 이용한다.Hash 자료구조를 사용한다.- Key: lock:{key이름}:{보통 사용하는 id값}- Field: {Redisson UUID} : {Java Thread ID}소유자 식별자로 사용하며, Redisson UUID를 사용하면 RedissonClient 인스턴스가 서버(JVM) 인스턴스마다 고유하게 부여한다.ex) a3f2e1d0-b7c4-4f2a-9e88-1234abcd5678 : 52- Value: 재진입 횟수로 정수값으로 기록한다. -> 똑같은 스레드가 똑같은 userId(보통 사용하는 id값)에 대해서 접근 시도(락 획득)를 할 때 이..
[TIL] Redis Replica와 Cluster 사용 상황 정리 보통 HA(High Availability)를 위해 master - slave 인스턴스를 둔다. 이 때는 클러스터 모드가 아니여도 괜찮고, AWS에서는 최소 7GB 메모리 성능으로 사용할 수 있다.클러스터 모드로 한다면, 여러 노드가 샤딩이 된다. redis key값을 기반으로 slot 개념으로 hashing 된다. 예를 들어 0 - 8196, 8197 - 16382 로 slot이 나뉘어서 key에 따라 slot이 설정되고, slot 범위에 맞게 node로 데이터가 배치된다. • 샤딩 시에도 HA를 위해서 샤딩된 각 노드에 대해 master - slave 구조를 둔다. 만약 클러스터 모드로 처리하면, key-value insert를 할 때 여러 노드에 배치되는 데이터를 한 번에 넣을 수 없다. 따라서 ..
Redis 개념, Local Memory 대신 사용 이유, 설치(CLI, GUI) 1. Redis란? Redis는 리눅스 기반의 key-value 기반 메모리 서버이다. 비관계형 데이터베이스(NoSQL)기반으로 구성된다. 주로 잦은 접근이 필요한 데이터를 메모리에 저장하여 통신 속도를 높이는데 사용한다. 예컨대 웹 서비스에서 모든 사용자의 요청에 대해 사용자의 접근 권한을 확인한다. 이때 매번 데이터베이스에 연결하여 권한 정보를 가져오는 것은 비용이 매우 크고 느린 작업이므로 Redis에 접근하면 미리 Redis에 저장해둔 정보를 통해 빠르게 정보를 확인하고 응답할 수 있다. source : 유튜브 영상 - Redis Labs and SQL Server 또한 주요 특징으로 Single thread로 작동한다는 특징이 있다. 따라서 어떤 요청이 redis에서 수행되고 있다면 다른 요청은..