인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
DBMS/Redis

[REDIS] 📚 캐시(Cache) 설계 전략 지침 💯 총정리

Redis - 캐시(Cache) 전략 캐싱 전략은 웹 서비스 환경에서 시스템 성능 향상을 기대할 수 있는 중요한 기술이다. 일반적으로 캐시(cache)는 메모리(RAM)를 사용하기 때문에 데이터베이스 보다 훨씬 빠르게 데이터를 응답할 수 있어 이용자에게 빠르게 서비스를 제공할 수 있다. 하지만 기본적으로 RAM의 용량은 커봐야 16 ~ 32G 정도라, 데이터를 모두 캐시에 저장해버리면 용량 부족 현상이 일어나 시스템이 다운 될 수 있다. 따라서 어느 종류의 데이터를 캐시에 저장할지, 얼만큼 데이터를 캐시에 저장할지, 얼마동안 오래된 데이터를 캐시에서 제거하는지에 대한 '지침 전략' 을 숙지할 필요가 있다. 캐시를 효율적으로 이용하기위해서는 캐시에 저장할 데이터 특성도 고려해야 한다. 예를들어 자주 조회되..

category_image
인파_
2022.11.10
(0)
DBMS/Redis

[REDIS] 📚 Node.js 에서 Pub/Sub 기능 구현하기

Node-Redis Publish / Subscribe 구현 (v4 ) Node.js에서 Redis 모듈을 이용하여 publish/subscribe 하는 방법에 대해 포스팅 해본다. 우선 redis의 pub/sub 기본 기능과 더불어 노드에 redis 모듈 설치와 사용법에 대해서 모르면 다음 글을 먼저 정독하고 오길 권한다. [REDIS] 📚 PUB/SUB 기능 (채팅 / 구독 알림) Redis Publish / Subscribe Publish / Subscribe 란 특정한 주제(topic)에 대하여 해당 topic을 구독한 모두에게 메시지를 발행하는 통신 방법으로 채널을 구독한 수신자(클라이언트) 모두에게 메세지를 전송 하. inpa.tistory.com Pub/Sub 클래스 구현 구독자(객체) 구조..

category_image
인파_
2022.07.13
(0)
DBMS/Redis

[REDIS] 📚 Node.js 에서 redis 모듈 사용법 (캐싱 & 세션 스토어)

Node 프로젝트에서 pm2로 다중 클러스터 인프라를 구축했다면 세션 불일치 문제가 생기게 마련이다. 만일 서버가 종료되어 메모리가 날라가면 접속자들의 로그인이 모두 풀려버리게 된다. 따라서 이를 방지하기 위해 세션 아이디와 실제 사용자 정보를 외부 데이터베이스에 저장하는 편이다. 이때 개발자들이 많이 사용하는 것이 Redis db이다. 다른 데이터베이스를 사용해도 되지만, 세션은 빠릿빠릿하게 응답을 해야되기 떄문에 메모리 기반의 데이터베이스인 레디스를 사용한다. 지금부터 Node 프로젝트에서 Redis와 연결하고 사용하는 법을 알아보자. Redis Database 설치 레디스를 로컬에 설치해도 되고, 클라우드로도 사용할 수가 있다. 마음에 드는 것을 골라 설치하자. 개인적으로 로컬 보다는 클라우드로 하..

category_image
인파_
2022.07.12
(0)
DBMS/Redis

🗃️ REDIS의 PUB/SUB 기능 (채팅 / 구독 알림)

Redis Publish / Subscribe Publish / Subscribe 란 특정한 주제(topic)에 대하여 해당 topic을 구독한 모두에게 메시지를 발행하는 통신 방법으로 채널을 구독한 수신자(클라이언트) 모두에게 메세지를 전송 하는것을 의미한다. 하나의 Client가 메세지를 Publish하면, 이 Topic에 연결되어 있는 다수의 클라이언트가 메세지를 받을 수 있는 구조이다. 쉽게 생각하면, Youtube 채널 구독과 비슷하다. 구독과 좋아요(Subscribe )를 누르면, 나중에 크리에이터가 새로운 글을 발행(Publish)하면 구독자 한테만 알림(notification)이 오게 되는 원리라고 보면 된다. Publish / Subscribe 구조에서 사용되는 Queue를 일반적으로 T..

category_image
인파_
2022.07.07
(0)
DBMS/Redis

[REDIS] 📚 캐시 데이터 영구 저장하는 방법 (RDB / AOF)

Redis 데이터의 영속성 (Redis Persistence) Redis는 In-memory DB 임에도 불구하고, 메모리 데이터를 disk에 저장할 수 있는 특징이 있다. 그래서 서버가 꺼진 후 restart되더라도, disk에 저장해놓은 데이타를 다시 읽어서 메모리에 로딩하기 때문에 데이타 유실되지 않는다. 이런 Persistent(영속성) 기능은 휘발성 메모리 DB를 데이터 스토어로서 활용한다는 장점이 있지만 이 기능 때문에 장애의 주 원인이 되기도 한다. 그러므로 이 기능을 잘 알아보고 사용하는게 중요하다. redis에서는 데이타를 저장하는 방법이 RDB (snapshotting) 방식과 AOF (Append only file) 두가지가 있다. RDB 방식은 특정한 각격마다 메모리에 있는 레디스 ..

category_image
인파_
2022.07.06
(0)
DBMS/Redis

[REDIS] 📚 자료구조 명령어 종류 & 활용 사례 💯 총정리

Redis 데이터 타입 (Collection) Redis의 장점 중 하나는 Key-Value 스토리지에서 Value는 단순한 Object가 아니라 다양한 자료구조를 갖기 때문이다. String, Set, Sorted Set, Hash, List 등 다양한 타입을 지원한다. 이번 시간에는 각 레디스의 자료구조를 알아보고 자료구조를 이용하는 명령어(command)를 정리해보는 시간을 가져보겟다. Redis Collections 를 사용할 때 주의점 하나의 컬렉션에 너무 많은 아이템을 담으면 좋지 않다. 가능하면 10000개 이하의, 몇천개 수준의 데이터 셋을 유지하는게 Redis 성능에 영향주지 않는다. Redis - Strings 일반적인 문자열 값은 최대 512 MB이며, String으로 될 수 있는 b..

category_image
인파_
2022.07.04
(0)
DBMS/Redis

[REDIS] 📚 전역 키 명령어(Common Keys) 종류 💯 정리

Redis Common Keys Common에 있은 명령어들은 5가지 Data type(자료구조)에 관계없이 모든 Key 적용되는 명령을 뜻한다. Common Keys 명령어 리스트 Key 확인, 조회: EXISTS, KEYS, SCAN, SORT Key 이름 변경: RENAME, RENAMENX Key 삭제: UNLINK, RM Key 자동 소멸 관련: EXPIRE, EXPIREAT, TTL, PEXPIRE, EXPIREAT, PTTL, PERSIST 정보 확인: TYPE, OBJECT 샘플링: RANDOMKEY Data 이동: MOVE, DUMP, RESTORE, MIGRATE Commands Syntax Description EXISTS key Key가 존재하는지 확인 UNLINK key Key를 ..

category_image
인파_
2022.07.04
(0)
DBMS/Redis

[Redislabs] 📚 Redis를 클라우드로 사용하자

Redis 클라우드 MySQL을 사용하기 위해서 워크벤치를 설치했던 것 처럼, 레디스를 사용하려면 레디스 데이터베이스를 설치해야 한다. 직접 서버 컴퓨터에 직접 설치할 수도 있지만, 레디스를 호스팅 해주는 서비스를 쓰는 것이 협업할때 편리하다. (요즘은 클라우드 시대 니까!) 레디스를 사용하려면 클라우드 대표격인 aws 에서 제공하는 elastic cache 를 사용해도 되지만, 과금이 되므로 대신 무료로 사용할 수 있는 Redislabs를 사용해보자. Redislabs는 1개의 레디스 DB를 30MB 무료 공간을 제공해준다. 기가, 테라 시대에서 30 메가바이트는 너무 보일수도 있지만 ram영역에서의 30mb는 결코 작은 수치가 아니다. Redislabs 등록하기 우선 Redislabs 웹 사이트(ht..

category_image
인파_
2022.07.01
(0)
DBMS/Redis

[REDIS] 📚 Window10 환경에 Redis 설치 & 설정

Redis 윈도우 설치 Redis 다운로드 페이지로 이동하여 설치 프로그램을 다운로드하고 설치를 진행한다. Releases · microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis github.com Redis의 기본포트는 6379 이다. Redis 실행하기 설치가 완료되면 서비스에 자동으로 등록되어 실행되며, 작업관리자 서비스 탭에서 확인이 가능하다. 만일 윈도우 ..

category_image
인파_
2022.06.30
(0)
DBMS/Redis

[REDIS] 📚 레디스 소개 & 사용처 (캐시 / 세션) - 한눈에 쏙 정리

Redis (Remote Dictionary Server) Redis는 Remote(원격)에 위치하고 프로세스로 존재하는 In-Memory 기반의 Dictionary(key-value) 구조 데이터 관리 Server 시스템이다. 여기서 key-value 구조 데이터란, mysql 같은 관계형 데이터가 아닌 비 관계형 구조로서 데이터를 그저 '키-값' 형태로 단순하게 저장하는 구조를 말한다. 그래서 관계형 데이터베이스와 같이 쿼리 연산을 지원하지 않지만, 대신 데이터의 고속 읽기와 쓰기에 최적화 되어 있다. 그래서 Redis는 일종의 NoSQL 로 분류되기도 한다. NoSQL은 Not Only SQL의 약자로써 기존 관계형 데이터베이스(RDBMS)보다 더 융통성 있는 데이터 모델을 사용하고 데이터의 저장 ..

category_image
인파_
2022.06.29
(0)