일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 양자컴퓨터
- Cache
- JPA
- API
- ann
- Elastic
- 아이온큐
- nested aggs example
- Elasticsearch
- mysql
- object aggs
- Aggregation
- NORI
- redis expire time
- java
- Query
- hset
- Docker
- aqqle
- Analyzer
- api cache
- Selenium
- nested aggs vs object aggs 성능 비교
- IONQ
- elasticsearch cache
- aggs
- request cache
- KNN
- nested aggs
- redis
- Today
- Total
목록분류 전체보기 (93)
아빠는 개발자
Redis를 사용하여 큐(Queue)를 설계하는 것은 Redis의 리스트(List) 자료구조를 활용하여 간단하게 구현할 수 있습니다.Redis의 리스트는 양방향으로 데이터를 추가하거나 제거할 수 있는 자료구조이고, FIFO(First-In-First-Out) 특성을 가지므로 큐를 구현하기에 적합합니다. 다음은 Redis를 사용하여 큐를 설계하고 구현하는 방법에 대한 단계별 설명입니다.1. Redis 리스트 사용기본적인 큐는 FIFO(First In First Out) 방식으로 작동합니다. Redis에서 큐를 구현하기 위해 LPUSH와 RPOP 명령을 사용할 수 있습니다. LPUSH는 리스트의 왼쪽에 데이터를 삽입하고, RPOP은 리스트의 오른쪽에서 데이터를 제거합니다.2. 기본 명령어큐의 기본 연산인 ..
1. 캐싱 전략캐싱 전략을 선택하는 것은 가장 중요한 부분 중 하나입니다. 일반적인 캐싱 전략은 다음과 같습니다Write-Through Cache: 데이터가 캐시와 데이터베이스에 동시에 쓰입니다. 캐시와 데이터베이스가 항상 동기화되지만, 쓰기 작업의 성능이 저하될 수 있습니다.Write-Back (Write-Behind) Cache: 데이터가 먼저 캐시에 쓰이고 나중에 데이터베이스에 비동기적으로 쓰입니다. 쓰기 성능은 향상되지만, 캐시 손실 시 데이터 손실 위험이 있습니다.Read-Through Cache: 캐시에서 데이터를 찾을 수 없으면 데이터베이스에서 읽어와 캐시에 저장하고 반환합니다.Cache-Aside (Lazy Loading): 애플리케이션이 먼저 캐시에서 데이터를 찾고, 없으면 데이터베이스에..
Redis CLI에서 키에 대한 만료 시간을 설정해보자 EXPIRE 명령을 사용하면 되는데 이 명령은 특정 키가 지정된 시간(초 단위)이 지나면 자동으로 삭제되도록 만료 시간을 설정 TEST )EXPIRE 명령을 사용하는 기본적인 예제 Redis Cli 접속 (base) ➜ ~ docker ps (base) ➜ ~ docker exec -it redis /bin/bash 컨테이너 접속root@eec19f53dc2e:/data# redis-cli 키가 뭐있나.. 127.0.0.1:6379> keys * 봤더니 쓰래기가 많아서 청소 한번하고 테스트127.0.0.1:6379> flushdb 127.0.0.1:6379> keys *(empty array) SET doo:key "doocoo" 만료시간을 ..
Redis 를 사용해보자 Jedis 라이브러리를 사용 maven - pom.xml redis.clients jedis 3.7.0 Gradle을 사용한다면 build.gradleimplementation 'redis.clients:jedis:3.7.0' 캐시 생성 예제import redis.clients.jedis.Jedis;public class RedisCacheExample { public static void main(String[] args) { // Redis에 연결 Jedis jedis = new Jedis("localhost", 6379); // 기본 포트는 6379입니다. // Redis에 데이터 쓰기 jedis.s..
개발환경MacOSdocker 설치docker-compose.yml# 파일 규격 버전version: "3.1"# 실행하려는 컨테이너들 정의services: # 서비스명 redis_container: # 사용할 이미지 image: redis:latest # 컨테이너명 container_name: redis # 접근 포트 설정(컨테이너 외부:컨테이너 내부) ports: - 6379:6379 # 스토리지 마운트(볼륨) 설정 volumes: - ./redis/data:/data - ./redis/conf/redis.conf:/usr/local/conf/redis.conf # 컨테이너에 docker label을 이용해서 메타데이터 추가 ..
몰라도 상관없지만 알아두면 요긴한 기본상식elasticsearch 의 search api response 구조 { "took": 5, // 검색에 소요된 시간 (밀리초 단위) "timed_out": false, // 타임아웃 여부 "_shards": { "total": 5, // 전체 샤드 수 "successful": 5, // 성공적으로 처리된 샤드 수 "skipped": 0, // 건너뛴 샤드 수 "failed": 0 // 실패한 샤드 수 }, "hits": { "total": 1, ..
nested 와 object 구조에서 aggregation 테스트를 해보자 동일한 데이터를 색인하는데 nested 구조에서 index의 크기가 증가하고 docs 가 늘어난다. 100만개 색인.. 목표는 1000 만개였으나 데이터를 랜덤 숫자로 생성하는데도 시간이 꽤 오래 걸렸다..그래서 중간에 멈추고 리프레시 실행 인덱스 생성 쿼리nested index{ "settings": { "number_of_shards": {SHARD_SIZE}, "number_of_replicas": 0 }, "mappings": { "dynamic": "true", "_source": { "enabled": "true" }, "properties": { "n..
음... 저번에 작성중이던 글이 싹 날아갔네 ..초심으로 돌아가서 다시 작성해보잣... 상품은 n 개의 promotion 에 등록될 수 있고 promotion 에는 m 개의 theme 가 등록될수 있다. 결론은 하나의 상품은 n x m 의 개의 promotion theme 에 등록될 수 있는것이다. 문제 1상품이 등록된 유효한 테마의 No 를 구해야 한다. 해결방법1. promotion_theme 번호를 연결해서 배열로 색인 후에 .. 후처리?.. 머.. 후처리가 들어간다면 안되는게 어딨겠나..api 의 응답속도나 이것저것 했을때 후처리를 좋아하진 않는 편이라 Pass 2. object 구조로 promos.promo 와 promos.theme 를 색인해서 필터를 promo 로 걸고 aggreg..
각설하고 퀵하게 가보자 우선 디펜던시 (DB, JPA) implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'mysql:mysql-connector-java' 테이블은 이렇게 생겼고 테이블 명은 keywords 그리곤 엔티티 package com.doo.aqqle.domain; import lombok.*; import javax.persistence.*; @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @Setter @Ent..
내가 .. 물려있는 테슬라 LSTM 으로 주가 예측을 해서 탈출해보자 tensorflow 1 버전으로 작업된 내용이 있긴하다. 내 PC에 깔린게 2다 보니.. 테슬라의 주가는 야후 finance 에서 historical Data 에서 받으면 된다. 날짜 범위를 Max 로 넣고 다운로드 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout # Load your stoc..