Database/Redis

    레디스를 활용한 분산 락(Distrubuted Lock) feat lettuce, redisson

    레디스를 활용한 분산 락(Distrubuted Lock) 분산 락이란(Distributed Lock) 분산 락은 분산 환경에서 여러대의 서버와 여러 DB간의 동시성을 관리하는 데 사용됩니다. 일반적으로 분산환경이 아닌 DB 등과 같은 곳에서는 비관적 락 등을 이용하여 동시성을 제어할 수 있지만, 여러 대의 DB가 존재하는 분산 DB 환경에서는 동시성 문제를 해결할 수 없습니다. 분산 DB에서 비관적 락으로 해결할 수 없는 이유 성능 저하: 분산 환경에서의 비관적 락은 네트워크 지연, 노드 간의 통신 오버헤드 등으로 인해 더 큰 성능 저하를 초래할 수 있다 데드락 문제 네트워크 파티션 문제 두 노드 사이의 네트워크 연결이 끊긴다. 한 노드에서 데이터의 락을 설정했지만, 연결이 끊어진 노드에서는 이 락의 정..

    Redis 캐시 전략

    캐시는 최근 웹 서비스 환경에서 시스템 성능 향상을 위해 가장 중요한 기술입니다. 캐시는 메모리를 사용함으로 디스크 기반 데이터베이스 보다 훨씬 빠르게 데이터를 반환할 수 있고 사용자에게 더 빠르게 서비스를 제공할 수 있음 메모리(RAM)을 사용한 기술로 데이터베이스보다 훨씬 빠르게 데이터를 제공할 수 있지만, 제공되는 물리 RAM의 용량에는 한계가 있기 때문에 모든 데이터를 RAM에 저장할 수는 없습니다. 때문에 다양한 전략들에 대해 알아보고 상황에 알맞게 사용해야 합니다. 또한 캐시를 사용할 때 데이터 정합성을 고려해야 합니다. 데이터 정합성 문제란 일반적으로, 캐시와 데이터베이스 두 곳에서 같은 데이터임에도 불구하고 데이터값이 서로 다른 다른 문제를 말합니다. DB에서 데이터 조회와 작성을 처리하면..

    Redis 자료구조와 트랜잭션

    Redis 자료구조 종류 Strings Lists Sets Hashes Sorted sets Streams Geospatial indexes Bitmaps Bitfields HyperLogLog Keys Redis의 키는 이진 안전(binary safe)하며, 이는 "foo"와 같은 문자열부터 JPEG 파일의 내용까지 모든 이진 시퀀스를 키로 사용할 수 있다는 것을 의미합니다. 빈 문자열도 유효한 키입니다. 바이너리 세이프 하단 뜻은 키 이름으로 어떠한 바이너리를 사용해도 무방하다는 뜻입니다. Redis Key에 대한 규칙 너무 긴 key는 좋지 않습니다. 예를 들어 1024바이트의 키는 메모리 측면에서 뿐만 아니라 데이터 세트에서 키를 조회하려면 비용이 많이 드는 몇 가지 키 비교가 필요할 수 있기 때..

    Redis 야무지게 사용하기

    nhn forward 의 영상인 Redis 야무지게 사용하기를 정리한 글입니다. NHN FORWARD - redis 야무지게 사용하기 다룰 내용 Redis 캐시로 사용하기 Redis 데이터 타입 야무지게 활용하기 Redis에서 데이터를 영구 저장 하려면? (RDB vs AOF) Redis 아키텍처 선택 노하우 (Replication VS Sentinel Vs Cluster) Redis 운영 꿀팁 + 장애 포인트 Redis 캐시로 사용하기 캐시 : 데이터의 원래 소스보다 더 빠르고 효율적으로 액세스할 수 있는 임시 데이터 저장소 캐시가 유용하게 사용되려면? 캐시 접근이 원본 접근보다 쉽고 빨라야 한다 동일한 데이터에 반복 액세스할 시 캐시가 유용하다 Redis s a cache Most poplar sof..