본문 바로가기

개발/Redis

(2)
Redis AOF에서 성능 저하를 방지하는 방법 개요이번에 Redis 유실 방지를 위해 AOF를 사용해보면서 한가지 의문점이 생겼습니다. AOF는 Redis 데이터에 대한 Create, Update 작업을 Disk의 로그 파일에 기록해서 Redis 프로세스가 다운되어도 복구할 수 있게 만드는 전략입니다. 그런데 이 때, 로그 파일에 기록하는 것은 Disk I/O 작업이기 때문에 Disk에 데이터를 기록하는 RDBMS를 사용했을때와 다를게 없습니다. 그래서 Redis에서는 어떤 방식으로 성능 저하를 방지하면서 AOF를 사용할 수 있도록 구현했는지 알아보겠습니다.    appendfsyncappendfsync 속성은 AOF 전략을 사용할 때, 로그 데이터를 어떤 주기로 저장할지 결정하는 속성입니다. redis.conf 파일을 보면, appendfsync ..
성능 향상 + 메모리 절약을 충족시키며 Redis 사용하기 개요프로젝트에서는 좋아요 기능이 있습니다.  첫 설계에서 좋아요 관련 CRUD 작업은 RDB에서 수행했습니다. 하지만 lost update를 방지하기 위해 RDB에 배타락을 걸어, select for update로 이를 처리했는데 이러한 방식은 성능상에 악 영향을 미치는 작업이었습니다. 이를 해결하기 위해 인 메모리 데이터베이스인 Redis를 사용하고, 분산락을 이용해서 좋아요 관련 작업을 수행해서 성능을 향상시켰습니다.  여기서 문득 의문점이 생겼습니다. 만약 좋아요 데이터가 1억개가 된다면?? 그러면 시스템 메모리 사용량이 상당히 높아질 것이고, 값 비싼 비용을 지불해서 캐시 서버를 여러대 늘려야만 해결할 수 있을 것입니다. 그래서 이 문제를 해결하고자 아래 플로우대로 작업을 수정해보겠습니다    좋..