전체 글
-
Commit Count 확장 - 로그(TIL) 카운트 EventListener ErrordevRace 2024. 11. 26. 18:46
커밋카운트 로직을 바탕으로 알고리즘 카운트, 로그(TIL) 카운트 를 만들었다. @EventListener @Async public void handleLogSubmitEvent(LogSubmitEvent event) { logCountService.updateLogCountOnSubmit(event.getUserId()); }} 이 곳에는 비동기를 적용하여 사용자가 제출한 이후 카운트를 따로 처리하게 함으로써 제출 이후 바로 다른 작업을 할 수 있도록 하였다. 테스트코드를 작성하여 간단히 로그 제출 -> 제출하며 카운트 이벤트 호출 로직으로 구성하였다. 하지만 테스트에서 문제가 발생하였고, 비동기가 제대로 적용되지 않은것이라 생각해 Awaitility.aw..
-
레디스오늘/Today I.. 2024. 11. 25. 16:00
cache hit (캐시 적중) → 캐시에서 찾음cache miss (캐시 누락) → 캐시에서 못찾음eviction policy (삭제 정책) → 캐시에 공간이 부족할 때 어떻게 공간을 확보할지에 대한 정책 Cache - Aside 레이지 로딩이라고도 함데이터를 조회할 때 항상 캐시를 먼저 확인캐시에 데이터가 있으면 캐시에서 데이터를 가져오고, 없으면 원본에서 데이터를 가져온 뒤 캐시에 저장필요한 데이터만 캐시에 보관됨최초 조회 시 캐시를 확인하기 때문에 최초 요청은 상대적으로 오래 걸림반드시 원본을 확인하진 않기 때문에 데이터가 최신이라는 보장이 없음 Write - Through 데이터를 작성할 때 항상 캐시에 작성하고, 그 후 원본에도 작성하는 전략캐시는 항상 최신 데이터임이 보장됨자주..
-
레디스 명령어 (4) Hash, Sorted Set오늘/Today I.. 2024. 11. 24. 01:48
Redis의 Hash는 Hash데이터를 가져오기 위해 Key를 사용하고 Key에 저장된 Hash데이터에 Field - Value 쌍을 넣어주는 식으로 동작한다. HSET HSET user:1 name boy age 20 city seoul # 하나의 키에 복수의 필드와 밸류가 담김 HGET String 과는 다르게 키 와 필드까지 넣어서 확인해야함HMGET 2개 이상의 필드 지정 가능HGETALL 데이터 다 가져옴HGET user:1 name # boy 반환HMGET user:1 name age # boy 20 반환HGETALL user:1 # name boy age 20 city seoul 반환 HKEYS Hash에 포함된 모..
-
레디스 명령어 (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을 줄경우 처음부터 끝까지 가져온다. ..