전체 글
-
레디스 명령어 (3) set오늘/Today I.. 2024. 11. 24. 01:10
Set (문자열의) 집합 SADD 로 데이터를 만들고 넣어준다.SADD alpha "a" "b" "c" "d" # {"a", "b", "c", "d"}SADD alpha "a" "e" # {"a", "b", "c", "d", "e"} SMEMBERS 로 모든 요소를 반환한다.SMEMBERS alpha # {"a", "b", "c", "d", "e"} SREM remove로 요소를 제거한다.SREM alpha "e" # {"a", "b", "c", "d"} SISMEMBER 특정 요소가 집합에 포함되어있는지 확인 (존재하면 1 존재하지않으면 0)SISMEMBER alpha "a" # {"a", "b", "c", "d"}Output: 1 SCARD ..
-
레디스 명령어 (2) list오늘/Today I.. 2024. 11. 24. 01:08
레디스에서 List라고 하면Doubly Linked List의 형태로 데이터를 저장다만 작은 크기의 리스트나 간단한 데이터인 경우 압축리스트 ziplist로 저장 이중연결리스트이기 때문에 push pop 명령어 실행 시 L, R을 지정해줘야함 LPUSH a:list 2LPUSH a:list 1RPUSH a:list 3RPUSH a:list 4 # 1234 순으로 저장된다. get은 문자열에서만 사용할 수 있는 명령어 이므로pop으로 꺼내거나,LRANGE로 특정 범위의 값을 가져오거나,LINDEX로 특정 인덱스의 값을 가져올 수 있다.(pop은 L, R 명시해줘야하지만, range와 index는 R이 없다.) LRANGE a:list 0 -1 # -1을 줄경우 처음부터 끝까지 가져온다. ..
-
레디스 명령어 (1) String오늘/Today I.. 2024. 11. 23. 20:41
SETGET문자열 데이터를 저장하고 조회한다. SET K V EX # 초 단위 만료SET K V PX # 밀리초 단위 만료SET K V NX # 새 키만 저장SET K V XX # 기존 키만 업데이트위와 같은 기능을 추가해서 저장할 수 있다.DEL을 쓰면 삭제도 가능하다. 또한최대 512MB까지 저장 가능데이터형식은 텍스트, 숫자, JSON, 바이너리 등 어떤 형식의 데이터든지 문자열로 저장가능 하다. 문자열 값이 정수일 경우 (문자열, 소수점 있으면 에러남)SET count 10INCR count # ++ 되어 11이 됨DECR count # -- 되어 10이 됨INCRBY count 10 # +10이 되어 20이 됨INCRBY count -10 # -10이 되어 ..
-
Hystrix와 Resilience4j "제공"과 "실행"의 차이프로그래밍/MSA 2024. 11. 20. 16:50
Hystrix : Fallback "제공" 실패 시 미리 정의된 Fallback 메서드를 Hystrix가 자동으로 호출개발자는 로직을 제공. 실행은 Hystrix가 관리 장점 : 간단하고, 구조적이며, 작성할 코드가 적음 Resilience4j : Fallback "실행" Fallback 로직을 명시적으로 작성하고, 실패 발생 시 직접 실행하도록 구현개발자가 Fallback 실행을 제어할 수 있어서 유연성이 높음 장점: 유연함단점: 코드작성량이 많음 "제공" 과 "실행" 의 차이제공 -> Fallback 로직을 미리 정의하면 실패 시 알아서 호출실행 -> Fallback 로직을 개발자가 직접 작성하고 제어 선택 기준Hystrix : 단순한 기본값 반환이 메인일 경우Resilience4j..
-
MySQL 과 PostgreSQL오늘/Today I.. 2024. 11. 19. 17:29
항목MySQLPostgreSQL설계 철학간단하고 빠른 성능고급 기능과 확장성, 표준 준수를 중시라이센스오픈소스오픈소스SQL 표준 준수SQL 표준을 완벽히 준수하지 않음SQL 표준 준수도가 높음데이터 타입지원하는 데이터 타입이 제한적(ex. JSON 지원 제한적)많은 데이터 타입 지원(JSON, JSONB, HSTORE, UUID 등)확장성제한적인 확장성 (플러그인 시스템은 존재)높은 확장성(C-language, PL/pgSQL, 파이썬으로 확장 가능)트랜잭션 관리InnoDB 엔진 사용 시 ACID 지원기본적으로 ACID 지원.더 강력한 트랜잭션 제어 기능 제공복제 및 클러스터링읽기 복제를 쉽게 설정 가능하지만기본 제공 클러스터링은 부족복제, 클러스터링 및 분산 처리에 뛰어남(BDR, Patroni 등)J..