본문 바로가기

전체 글

(96)
Redis - Spring Boot 와 연동 Redis 데이터 조회먼저 테스트 데이터를 넣었다.  json 배열에 2개의 json 형식의 데이터가 들어있다. RedisSample.java @GetMapping("/redis/list") public String selectRedisList() throws Exception { String key = "TEST_REDIS_USER"; ListOperations listOperations = redisTemplate.opsForList(); Long size = listOperations.size(key); JSONParser parser = new JSONParser(); if(size > 0){ for(int i..
Redis - Spring Boot 와 연동 Redis 를 Spring Boot와 연동 해보자 build.gradle에 redis를 추가한다. implementation 'org.springframework.boot:spring-boot-starter-data-redis' Redis를 사용하기위해 설정 파일 만든다. application.properties spring.redis.host=localhost spring.redis.port=6379 RedisConfig.java public class RedisConfig { @Value("${spring.redis.host}") public String host; @Value("${srping.redis.port}") public int port; @Bean public RedisTemplate r..
Redis 윈도우 설치 Redis 윈도우 설치 https://github.com/microsoftarchive/redis/releases 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 msi를 다운받아 준다. 설치경로와 기본 포트를 설정한다. 작업관리자 서비스에 들어가보면 Redis가 실행중인 것을 볼 수 있다. 윈도우 서비스를 사용하지 않는다..
Redis 란? Redis 란? Redis는 오픈 소스 기반의 고성능 키-값 저장소이며, 메모리 내 데이터 구조 저장 및 검색을 위한 데이터베이스로 사용한다. Redis는 NoSQL 데이터베이스 중 하나로, 주로 캐싱, 세션 관리,메시지 브로커, 대기열 처리 등 다양한 용도로 활용된다. Redis는 특히 메모리 내 데이터 저장으로 빠른 응답 속도를 제공하며, 디스크에 데이터를 지속적으로 저장하여 데이터 손실을 방지할 수 도 있다. 또한 다양한 데이터 구조를 지원하며, 문자열, 리스트, 해시, 집합, 정렬 집합과 같은 데이터 타입을 다룰 수 있어 다양한 어플리케이션에서 활용 가능하다. 데이터 베이스가 있음에도 불구하고 Redis를 사용하는 이유? 데이터베이스는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생해..
Elasticsearch - Mappings 문자열 - text, keyword elasticsearch 에서 문자열 타입에는 text, keyword 두 가지가 있다. 인덱스를 생성할 때 매핑에 필드를 미리 정의하지 않으면 동적 문자열 필드가 생성 될 때 text 필드와 keyword 필드가 다중 필드로 같이 생성된다. text text 타입은 입력된 문자열을 텀 단위로 쪼개어 역 색인 구조를 만든다. 보통 풀 텍스트 검색에 사용할 문자열 필드들을 text 타입으로 지정한다. text 필드에 설정가능한 옵션 들은 다음과 같다. analyzer : : 색인에 사용할 애널라이저를 입력하며 디폴트로는 standard 애널라이저 이다. 토크나이저, 토큰필터들을 따로 지정할 수 가 없으며 필요시 사용자 정의 애널라이저를 settings에 정의 해 두고 사..
Elasticsearch Settings & Mappings 모든 인덱스는 두 개의 정보 단위를 가지고 있는데 바로 settings(설정) 와 mappings(매핑) 이다. 인덱스를 처음 생성 한뒤 조회하면 설정과 매핑 정보를 확인할 수 있다. 설정 - Settings GET user_info/_setings GET user_info/_mappings 세팅이나 매핑 정보만 따로 보고 싶으면 위의 명령어로 보면 된다. 처음 인덱스를 정의하면 몇가지 정보들이 자동으로 생성되는데 샤드 수는 7.0버전부터 디폴트로 1개가 설정된다. number_of_shards, number_of_replicas 샤드 수와 리플리카는 number_of_shards , number_of_replicas 에서 설정한다. 세팅 아래의 index 아래 설정에 명시되는데 index 레벨은 생략하..
Elasticsearch + spirng boot 연동(UPDATE) 특정 데이터 필드 값을 UPDATE 해서 변경해보려고한다. DocumentApi.java : _bulkDocumentWithBulkProcessor 메소드 else if(data.getActionType().equals(BulkData.Type.UPDATE)){ bulkProcessor.add(new UpdateRequest(data.getIndexName(), data.getId()).doc(data.getJsonMap())); } 위의 코드를 추가한다. BULK API를 사용하여 ES에 여러 개의 문서를 한 번에 UPDATE 한다. UPDATE할 문서의 ID와 변경할 내용을 UpdateRequest 를 통해 지정하여 ES에 전달한다. IndexApi.java /** * 인덱스 존재여부 확인 * @pa..
Elasticsearch + spirng boot 연동(SELECT) 데이터를 조회할때 SORT를 추가해보려 한다. SortData.java @Data public class SortData { private String field; private SortOrder type; } SortOrder는 elasticsearch 라이브러리 SortOrder 클래스를 import해서 사용한다. SearchApi.java : _searchScroll 메소드에 추가한다. if(sortList != null) { for(SortData data : sortList) { searchSourceBuilder.sort(new FieldSortBuilder(data.getField()).order(data.getType())); } } 이 코드는 sortList에 있는 각 SortData 객..