전체 글(26)
-
[Trouble Shooting] CLI를 이용하여 외부 라이브러리를 포함한 Java파일 Compile 및 실행하기(Classpath)
얼마 전, 모듈 개발 중 누적 확률정규분포의 역함수로 표준 정규분포를 따르는 난수를 생성해야했는데요, 수학에 약한 저는 여기저기 정규분포 관련 클래스를 찾아보다가 apache에서 제공하는 NormalDistribution이라는 클래스와 inverinverseCumulativeProbability 함수를 이용하면 된다는 것을 알아냈습니다. 하지만.. Eclipse나 IntelliJ와 같은 IDE만 사용해왔던 저는 CLI를 통해 외부 라이브러리를 포함한 Java 파일 Compile 및 실행하는 법 을 몰라서 한참을 헤매게 되었고 오늘은 그 과정에서 발생했던 트러블과 해결방법에 대해 공유를 해보고자합니다. 우선, 외부 class를 사용하기 때문에 import 패키지명.클래스명을 선언해준 후, import or..
2019.09.25 -
[Redis] Spring Boot에 Redis 연동하기
spring data redis, RedisTemplate ,RedisConnectionFactory을 이용하여 프로젝트에 레디스를 연결합니다. 1. Dependency Spring Data Redis 여러 Redis 드라이버(Lettuce 및 Jedis)를 추상화하여 사용할 수 있도록 함 Lettuce 드라이버를 사용한 Reactive API RedisTemplate 을 통해 다양한 Redis작업, 예외 변환 및 직렬화 지원 pub/sub, Sentinel/Cluster 등 지원 더 자세한 내용은 공식문서를 참고하세요. Maven project(pom.xml) org.springframework.boot spring-boot-starter-data-redis Gradle project(build.gra..
2019.09.11 -
[Redis] Redis Cluster 사용하기 (Cluster Proxy)
1. What is Redis Cluster Redis Cluster는 Redis에서 제공하는 Replication 및 Sharding 기법입니다. 그림은 Redis Cluster 구성 시 구조를 나타냅니다. Cluster는 Data를 여러 Node에 자동으로 분배합니다. 일부 Node들이 에러가 발생하여 다른 Cluster들과 통신이 불가능해도 운영을 계속 할 수 있습니다. Cluster Multi Master-slave Redis Cluster는 Multi-master, Multi-slave 구조를 가지며 각 Redis는 Master 또는 Slave로 동작합니다. 각 Master는 Hash Slot이라는 Data 저장구역을 다른 Master와 나누어 소유합니다. Hash Slot은 0부터 16384까..
2019.09.11 -
[Redis] Redis Master-Slave 사용하기 (Sentinel, HAProxy)
What is Redis Master-slave? Redis Master-slave는 Redis에서 제공하는 가장 기본적인 Replication 기법입니다. Redis Master-Slave 구성시 위와 같은 구조를 가지는데 이는 MySQL의 Master-slave Replication 기법과 유사한 점이 많습니다. 하나의 master에 다수의 slave가 붙을 수 있습니다. Master는 Read-Write mode로 동작합니다. Slave는 Read-Only mode로 동작합니다. 따라서, Client는 필요에 따라 Master에 붙어 Write 동작을 수행하거나 Master 혹은 Slave에 붙어 Read 동작을 수행할 수 있습니다. Master-slave Replication Process Mas..
2019.09.11 -
[Redis] 4. 메모리 운영기법 및 주의점
메모리 운영기법 1. Maxmemory : 메모리 사용량 제한 메모리 사용량 제한을 위해 사용하는 maxmemory는 32bit/64bit 환경에 따라 초기값이 다르게 설정된다. 32bit 환경에서는 초기값이 3GB로 설정되어 최대 3GB 메모리만 사용 가능한 반면에, 64bit 환경에서는 초기값이 0으로 설정된다. 즉, 64bit 환경에서는 메모리 사용량 제한이 없으며 운영체제의 가상메모리(스왑)까지 사용한다.(이 때 시스템의 메모리 한계를 인식하지 못해 더 많은 메모리를 요구하여 문제가 발생할 수 있기 때문에 따로 설정을 해주어야 한다.) 주의: maxmoery 설정 된 instance에 slave가 존재 할 때, slave에게 data를 제공하기위해서 사용되는 output buffer의 size는 ..
2019.09.11 -
[Redis] 3. 명령어 및 데이터 구조에 따른 데이터 처리
기본 명령어 Key-value DB의 논리적 구조 Table 하나의 DB에서 데이터를 저장하는 논리적 구조로 관계형 DB에서 표현하는 논리적 개념인 테이블과 동일합니다. Data sets 테이블을 구성하는 논리적 단위입니다. 하나의 data-sets은 하나의 key와 한 개 이상의 field/element로 구성됩니다. Key 하나의 key는 하나 이상의 조합된 값으로 표현 가능합니다. Values 해당 key에 대한 구체적은 데이터 값을 표현합니다. value는 하나 이상의 field 또는 element로 구성됩니다. Data type Hash List Set
2019.09.09