본문 바로가기
반응형

DATA/Redis14

Redis 란? In-Memory Storage라서 저장장치를 쓰는 RDB에 비해 빠르다.다양한 기능을 제공한다. (key-value, 위치 기반 검색, 랭킹, queue-stack, Transaction 지원, TTL 지원) 주요 기능Snapshot - 지속적으로 무중단 저장 장치에 저장 가능하다.Replication - 다른 노드에 복제가 가능하다.Redis Cluster - 여러대의 Redis로 분산 저장 및 처리가 가능하다.Thread Model - Nodejs Thread Model과 유사하다.Redis와 MemcacheD를 비교해봤을 때 Redis 의 사용빈도가 높은 거으로 보인다. Redis ClusterRedis client가 요청하려는 key를 해시 함수를 돌려 나온 값으로 노드를 찾아서 저장한다.데이터.. 2024. 10. 26.
[공유] 캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁 서비스에 대량의 트래픽이 몰릴 때 데이터베이스에 집중되지 않게 하는 방법 중 하나인 캐시가 있습니다.캐시로 인해 발생할 수 있는 장애 유형을 정리한 글을 공유합니다.  캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁대용량 트래픽 환경에서 캐시를 사용할 때 주의해야할 위험 상황과 예방법을 소개합니다.toss.tech   문제1. 캐시 쇄도 (Cache Stampede)캐시가 전부 같은 시간에 만료되도록 하면 발생하는 이슈해결방법: 지터(jitter)캐시 만료 시간에 0~10초 사이의 무작위 지연 시간을 추가하여 설정한다. 문제2. 캐시 관통 (Cache Pentration)보통 DB에 값이 없을 때 null을 받아오면 캐시를 채우지 않도록 구현하는데, '값이 없다' 라는 정보를 캐싱하지 않으면 계속 .. 2024. 6. 2.
[NHN FORWARD 2021] Redis 야무지게 사용하기 보고 정리 반복해서 접근하고, 잘 변하지 않는 데이터를 캐시로 사용하는 것이 좋다. 캐싱 전략 읽기 전략 Look-Aside (Lazy Loading) : 캐시에 먼저 확인 후 -> 캐시에 없으면 DB 조회 * Cache Warming : 서비스에 처음 도입할 경우 캐시에 당연히 없으니 DB 조회에 몰리게된다. 이를 위해 미리 캐시에 저장한 후 오픈하는 것. 쓰기 전략 Write-Around : DB에만 바로 저장하는 것 Write-Through : DB에 저장하고, Redis에도 저장하는 것 단점: 저장할때마다 두번 거치기때문에 지연 생김, 무조건 저장하므로 낭비 부분이 생긴다. 2023. 8. 26.
Redis vm 생성, AWS EC2 설치 계정을 만들고, 카드 등록 후 검색창에 "EC2" 를 검색하고 들어와서 "새 인스턴스 시작" 한다 Ubuntu 환경으로 나머지는 기본 설정을해서 만들고 인스턴스에 연결 기본적으로 사용자명은 ubuntu 다. 생성까지는 조금의 시간이 필요하므로 후에 연결하면 sentinel은 1대만 설치해도 되지만 해당 VM에 장애가 발생되면 정상적인 monitoring과 failover가 불가하기 때문에 3대로 설치한다. 장애여부와 failover 시 다수결 의사 결정을 할 수 있어야하기 때문에 sentinel은 홀수개로 설치해야한다. $ sudo su $ apt-get update $ apt-get install redis-server $ cd /etc/redis # redis.conf가 생성됨을 확인 $ ps -ef.. 2023. 8. 6.
Memcache 와 Redis 비교 일반적으로 Redis는 Memcached의 기능을 대부분 포함하고 있다. Redis 에 저장할 수 있는 자료구조가 다양한 것을 볼 수 있고싱글스레드와 멀티스레드 차이점이 있습니다. (아래에 대용량 데이터처리는 멀티스레드가 더 좋은데 왜 redis 를 사용하는지 적어놨습니다) Memory Policy는 메모리가 풀로 찼을 때 자동적으로 어떤 데이터가 지워지느냐인데, Memcached는 LRU 알고리즘을 사용해서 가장오랫동안 사용하지 않은 키를 삭제합니다.Redis는 다양한 옵션을 제공하고 있어서 데이터 특성에 맞게 설정이 가능합니다. persistence 영속성은 장애를 대비하여 백업할 수 있는가 이며Memcached는 따로 제공하지 않고, Redis 는  AOF 또는 RDB 형식을 제공해줍니다. Redi.. 2023. 8. 4.
[공유] (번역) 캐시 시스템 설계할 때 기억해야 할 6가지 캐싱 전략 캐시 시스템의 주요 성능 측정 지표 캐싱 시스템의 효율성과 성능을 향상시키기 위해서는 다양한 지표를 모니터링하는 것이 매우 중요합니다. 이를 통해 캐싱 시스템에 관한 중요한 비즈니스 결정을 내릴 수 있습니다. 캐시 적중률(hit ratio) 요청된 항목이 캐시에서 사용된 비율을 측정합니다. 캐시 적중률이 높을수록 캐시에서 더 많은 데이터가 제공되어, 외부 저장소에 액세스 할 필요성을 줄어들고 성능이 향상됩니다. 아래의 성능 지표를 모니터링한다면, 우리는 캐싱 시스템을 최적화하여 더 높은 처리량과 낮은 대기 시간을 달성할 수 있습니다. 지연 시간(latency) 데이터에 액세스하는 데 걸리는 시간을 의미합니다. 캐싱 시스템에서 낮은 대기 시간은 데이터가 더 빠르게 제공되는 것을 의미하여 전반적인 성능을 향.. 2023. 6. 18.
Redis 사용시 주의사항 Redis 캐싱을 이용하여 성능을 개선하고자 할 때 캐싱 데이터는 update가 자주 일어나지 않는 데이터가 효과적 너무 많은 update 가 일어나는 데이터일 경우 DB와의 Sync 비용 발생 Redis 사용 시 반드시 failover에 대한 고려 ex) 레디스 장애시 DB에서 조회 / 레디스 이중화 및 백업 2023. 3. 9.
Redis - Serialize, Unserialize 란? 직렬화 저장의 단점 Serialize 객체를 데이터 스트림으로 만드는 것. 바이트 형태로 바꾸는 것 사용하는 곳: 파일 저장, 패킷 전송 시 파싱 가능한 데이터를 만들기 위해 사용한다. 그러면 Redis Set 할 때 시리얼라이즈해서 저장하는 이유는 무엇인지 궁금해서 찾다가.. 우아한 형제들 기술블로그에서 해당 부분에 대한 단점을 적은 글을 보았다. 자바 직렬화, 그것이 알고싶다. 실무편 | 우아한형제들 기술블로그 {{item.name}} 자바의 직렬화 기술에 대한 대한 두 번째 이야기입니다. 실제 자바 직렬화를 실무에 적용해보면서 주의해야 할 부분에 대해 이야기해보려고합니다. 자바 직렬화 실제 업무에서 사용 techblog.woowahan.com 긴 시간 동안 외부에 저장하는 의미 있는 데이터들은 자바 직렬화를 사용하지 .. 2022. 12. 29.
Redis data types 자료구조 유형 Redis 의 장점으로는 다양한 자료구조가 있는점이다. 주로 사용되는 대표적인 타입: String, Set, Sorted Set, Hash, List 그외 : Bitmap, HyperLogLog, Geospatial, Stream, Bitmap, Bitfield 이해하는데 도움이되는 그림 Redis CLI $ docker exec -it {Container id} redis-cli --raw Strings 단순한 insert 문을 대체하기 위해 사용한다. ex) 유저의 token 저장, 이미지 저장 등 SET : 데이터를 저장한다. GET : key의 값을 조회한다. INCR : key에 저장된 수를 1씩 증가한다. INCRBYSET : key에 지정한 수만큼 증가시킨다. DECR : key에 저장된 수.. 2022. 12. 29.
728x90
반응형