전체 글
-
Redis Hash 형식과 명령어Data Base/Redis 2022. 10. 3. 13:24
Hash 형식 Hash는 또 다른 key-value pair이다. 간단히 말하면 key-value pair안에 key-value pair라고 생각하면 쉽다. 하지만 Hash 형식안에 중복되는 key-value를 가질 수 없다 JSON object과 같다고 생각하면 된다. Hash 형식안에는 오직 중복되지 않는 하나의 key-value pairs만 가질 수 있다. Hash 형식에 관련한 명령어를 사용하려면 명령어의 접두사로 "h"를 사용해야 한다. HSET 명령어 hset key field value [field value...] HGET 명령어 Hash의 key이름과 원하는 field이름을 위와 같이 입력하면 person Hash안에 원하는 value를 출력받을 수 있다. HGETALL 명령어 hgeta..
-
Redis Set 형식과 명령어Data Base/Redis 2022. 10. 3. 12:49
Set 형식 같은 array 구조체를 하고 있다는 점에서 List형식과도 매우 유사하다고 할 수 있다. 하지만 Set 형식은 unique한 array로 Set형식의 array안에 있는 모든 element가 완전히 유일한 값(중복 되는 값 x)이 라는 거이 본질적인 특징이다. 또 한 Set 형식에는 보통의 array와는 다르게 특별히 정해진 순서가 없다. redis에서 Set형식의 array를 만들고 싶다면 모든 명령어의 접두사로 "s"를 넣어야 한다. SADD 명령어 sadd key member [member ...] sadd 명령어를 통해 Set 형식의 array를 만들 수 있다. 더 불어 위 예제에서 알 수 있듯이 Set형식에 member에 공백이 포함되어 있을 때는 쌍따옴표로 묶어 주어야 한다. S..
-
Redis List 형식과 명령어Data Base/Redis 2022. 10. 2. 22:27
List 형식 1) lpush명령어 lpush key element [element.......] redis에 List형식으로 데이터를 저장하려면 lpush명령어를 사용하면 된다. 이 명령어는 key-value pair를 List의 첫 부분 부터 저장하게 한다. 이때의 첫부분의 기준은 왼쪽부터 시작한다. 또한 List에 이름을 지정 할 수도 있다. 2) lrange명령어 위 예제에서 우리는 friends라는 key이름을 가지는 배열을 가지게 되었고 그 내부에는 tom이라는 element가 있다. get 명령어를 통해 friends를 확인해보려고 시도하면, 잘못된 명령어라는 메시지를 반환한다. lrange key이름 index번호 ~ index번호 왜냐하면 get명령어는 오직 문자열 타입의 key-valu..
-
Redis basic practiceData Base/Redis 2022. 10. 2. 20:56
redis-cli로 redis server에 접속하면, cli로 NodeJS에 명령를 실행하는 것처럼 redis에서 명령을 실행하고 access할 수 있다. 가장 먼저 할 수 있는 일은 redis 데이터베이스에 항목을 추가하는 것이다. redis는 key-value pair를 이루는 데이터베이스 이므로 가장 중요한 것은 key에 대한 값을 설정하고, 그 값을 가져오는 것이다. SET으로 key-value 저장하기 GET으로 value가져오기 Redis 문자열 저장 간단한 예제에서 알 수 있듯이 redis내부에 저장되는 거의 모든 것은 문자열 유형이 될 것이다. redis를 사용하여 데이터를 처리할 때는 대부분 문자열로 돌아올 것이다. 위와 같이 숫자인 나이를 저장한뒤 값을 반환 받으면 그 값은 문자열 타..
-
Docker Attached & Detached ContainerInfra/컨테이너 2022. 9. 14. 17:42
Container를 시작하는 두가지 명령어 docker start (컨테이너 이름 또는 ID) 해당 명령어로 Container를 재시작하면 터미널 프로세스가 즉시 완료된다. 터미널을 실행중인 Docker Container에 연결하지 않는다.(Container는 background로 실행중인 상태가 된다.) 해당 Container는 터미널에서 블록되지 않았을 뿐이지 실행 중 이다. -detached 실행 docker run -p 외부에서 접근할 포트번호:외부에 노출할 포트 번호 이미지ID 이전의 실행한 dockr run 명령과는 다르다. 7070포트에는 이미 다른 Container가 실행 중 이므로 8070 포트 번호를 사용하여 동일 Image기반으로 새로운 추가 Container를 실행한다. -attac..
-
apache kafka 핵심요소 3가지(Broker, Replication, ISR)Data Base/Kafka 2022. 9. 6. 14:55
replication 즉 복제는 kafka 아키텍쳐의 핵심이다. *cluster에서 서버에 장애가 생길 때 kafka의 *가용성을 보장하는 가장 좋은 방법이 복제이기 때문이다. *computer cluster(컴퓨처 클러스터) : 여러 대의 컴퓨터 들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말한다. 클러스터의 구성 요소들은 일반적으로 고속의 근거리 통신망 으로 연결된다. 서버로 사용되는 노드에는 각각의 운영체제가 실행된다. 컴퓨터 클러스터는 저렴한 마이크로프로세스와 고속의 네트워크, 그리고 고성능 분산 컴퓨팅용 소프트웨어들의 조합 결과로 태어났다. *가용성 : 시스템 품질 속성 중 시스템이 장애 없이 정상적으로 운영되는 능력 Kafka broker kafka broker는 kafka가 설..
-
apache kafka Producer카테고리 없음 2022. 9. 5. 17:55
Producer Producer는 kafka에 데이터를 보내는 역할을 하는데 만약에 엄청난 양의 클릭로그들을 대량으로 그리고 실시간으로 kafka에 적재할 때 Producer를 사용할 수 있다. Producer는 이름에서 알 수 있듯이 데이터를 producing ->생산하는 역할을 한다. 즉 데이터를 kafka topic에 생성한다. Producer 역할 - Topic에 해당하는 메시지를 생성 - 특정 Topic으로 데이터를 publish - 처리 실패 -> 재시도 첫번째로 가장 중요한 역할 topic에 전송할 메시지를 생성할 수 있다. 그리고 두번째 특징으로 특정 topic으로 데이터를 publish 전송할 수 있다. 이를 통해 기본적으로 카프카 데이터 전송이 완성된다. kafka 의존성 추가 Gett..
-
apache kafka TopicData Base/Kafka 2022. 9. 5. 13:38
Topic 카프카에는 다양한 데이터가 들어 갈 수 있는데, 그 데이터가 들어 갈 수 있는 공간을 Topic이라고 한다. 이 카프카 Topic은 AMQP와는 다르게 동작한다. 카프카에서는 토픽을 여러개 생성할 수 있다. Topic은 데이터베이스의 테이블이나 파일시스템의 폴더와 유사한 성질을 가지고 있는데, 이 토픽에 Producer 데이터를 넣게되고 Consumer는 데이터를 가져가게된다. Topic은 이름을 가질 수 있는데, 목적에 따라 클릭로그,send sms,location log 등과 같이 무슨 데이터를 담는지 명확하게 명시하면 추후 유지보수 시 편리하게 관리 할 수 있다. Topic 내부 하나의 토픽은 여러개의 파티션으로 구성될 수 있으며, 첫번째 파티션 번호는 0번부터 시작한다. 하나의 파티션은..