데이터베이스/Redis3 스프링에서부터 레디스까지 동작 원리 레디스 클라이언트는 레터스를 사용한다고 가정레디스의 커넥션 풀을 사용한다고 가정파이프라인을 썼다고 가정 (이건 커넥션 풀에 유무에 따라 초기 커넥션을 얻을때 파이프라인의 행동이 달라서 그렇습니다. 커넥션 풀이 있으면 커넥션 획득 동작은 단일 명령일때와 같습니다.) 1. 스프링데이터레디스는 커넥션풀(아파치 커먼스 풀2)에서 커넥션을 가져와 레터스로 요청을 보낸다.2. 레터스는 내부적으로 Netty를 호출3. Netty는 커넥션이 이미 수립되어있으니 기존에 채널이 있을것이다. 그 채널로 레디스에 요청을 보낸다.4. 레디스는 RESP프로토콜을 쓴다. 역슬래시와 r, n으로 쓰이게 데이터를 직렬화시켜 대역폭과 파싱비용을 최소화하는 프로토콜이다. 네티의 핸들러에는 RESP 인코더 디코더가 있다. 데이터를 RESP.. 2026. 1. 29. 레디스 캐시 전략 1. Cache Aside조회시 캐시 조회실패시 DB에 조회 후 캐시에 데이터를 저장 2. Read Through조회시 캐시 조회, 캐시어사이드와 비슷하지만 DB를 조회하는 주체가 다르다.캐시 어사이드는 앱이 DB를 조회하지만 리드 스로우는 캐시가 DB를 조회하여 캐시가 커넥션을 가지고 있어야한다.캐시가 장애나면 DB에 접근이 불가능하다 거의 쓰이지 않음이때 캐시는 DB의 프록시역할 3. Write Back저장시 캐시에 먼저 저장하고 캐시에 있는 데이터를 배치로 DB에 저장캐시 오류 발생시 데이터 영구 소실 4. Write Through저장시 캐시에 저장하고 DB에 즉시저장.항상 동기화 되어있다. 두번의 쓰기가 일어나 빈번한 수정이 발생하면 성능 이슈 발생가능 5. Write Around저장할 때 캐시에.. 2025. 8. 9. 레디스 기본 명령어 Set키, 값 을 저장한다127.0.0.1:6379> set jaeik:1 "jaeik good"OK127.0.0.1:6379> set jaeik:2 jaeikOK띄워쓰기가 필요하면 쌍따옴표로 막아야함 get키로 값을 반환한다127.0.0.1:6379> get jaeik:1"jaeik good"127.0.0.1:6379> get jaeik:2"jaeik" keys모든 키를 반환한다 여기선 잘못쳐서 jaeik이 아니라 jeaik도 하나 끼어들어감 ㅠ127.0.0.1:6379> keys *1) "jeaik:2"2) "jaeik:1"3) "jaeik:2"127.0.0.1:6379> del키로 키와값을 삭제한다127.0.0.1:6379> del jaeik:2(integer) 1127.0.0.1:6379> key.. 2025. 8. 9. 이전 1 다음