본문 바로가기

Redis7

[레디스] 레디스 클러스터를 도커에서 구성해보자 레디스 클러스터란? 센티넬보다 발전된 형태로 멀티 마스터 구조를 지원합니다. 샤딩을 지원해 데이터 분산으로 가용성을 높입니다. Failover 기능으로 센티넬 없이 자동으로 노드 관리를 해줍니다. cluster는 스케일 아웃이 가능합니다. 확장성이 좋습니다. [Deprecated] 스케일 아웃 시에 해시 알고리즘의 이슈를 피하기 위해 Consistent Hashing을 적용해 모든 키의 재매핑을 막고 평균적인 키만 재매핑 시켜줍니다. 레디스 클러스터와 Consistent Hashing Tech Note 정보 stdio.h 님이 작성하신 글입니다. 카테고리: [ NoSQL ] 게시됨: 03 December 2019 작성됨: 03 December 2019 최종 변경: 03 December 2019 조회수: .. 2022. 3. 17.
[레디스] 메모리 관리 기법 RDB vs AOF 차이 레디스 노드 로그를 분석하다가 RDB와 AOF라는 메모리 관리 방식에 대해 알게 되어 궁금증이 생겨 찾아보게 되었습니다. 데이터의 영속성을 위한 두 가지 방식입니다. RDB(Redis DataBase) 스냅샷과 비슷한 역할을 합니다. 특정 시점의 메모리 데이터를 전부 바이너리 파일로 저장합니다. AOF 파일보다 사이즈가 작아 로딩이 빠릅니다. 저장 방법은 redis.conf의 save로 설정합니다. save 10 1: 10초간 1번 이상 변경 시 저장 여러 개도 지정해 하나라도 만족하면 수행합니다. 메모리를 많이 사용합니다. 대규모 데이터에 적합합니다. AOF(Append Only File) appendonly.aof에 저장됩니다. INSERT,UPDATE,DELETE 명령 수행 시마다 기록됩니다. ap.. 2022. 3. 17.
스프링 레디스 최근 검색어 관리하기 거래 플랫폼 프로젝트를 진행하던중 검색 창에 최근 검색어 기능 추가를 했으면 좋겠다는 의견이 있었습니다. 2가지 방법을 생각했는데 첫번째는 search 엔티티를 만들어 관리하는 방식이었습니다. 두번째는 레디스에서 최근 검색어를 위해 리스트 자료구조를 이용해서 관리하는 방식을 생각했습니다. 첫 번째 방식은 인메모리 캐시 방식인 레디스에 비해 속도가 느릴거 같고 관리 측면에서도 원하는 사이즈가 꽉 찾을때 시간순으로 정렬한 후에 가장 오래된 컬럼을 삭제하고 다시 insert를 해야한다는 점이 번거로웠습니다. 그래서 엔티티를 아예 만들지않고 accountId로 식별할 수 있는 레디스 리스트를 만들어서 관리하는 방식을 택했습니다. 로직은 사용자가 검색을 하게되면 accesstoken으로 사용자를 조회하고, 키 값.. 2022. 2. 10.
맥북으로 스프링에서 Jmeter로 성능 테스트해보기 1. Jmeter를 먼저 깔아줍시다. Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava jmeter.apache.org zip 파일을 받고 압축을 풀어주도록 합니다. 2. 별도 설치 필요 없이 터미널에 접속하고 압축 푼 폴더 안의 /.. 2022. 2. 4.
스프링 레디스 redis cache 프로젝트에 적용하기 실행 환경 mac air m1 몬터레이 spring boot: 2.6.2 redis: 6.2.6 Docker Desktop: 4.4.2 스프링에서 레디스를 사용하기 위해서 도커에 redis 컨테이너가 실행 중인 상태로 두신 상태를 전제로 진행하겠습니다. 1. build.gradle에 implementation 추가하기 data-redis와 cache manager 사용을 위해 두 가지 모두 추가해줍니다. implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-cache' 2. @EnableCaching 추가 프로젝트에서 캐.. 2022. 2. 4.
맥북으로 도커에 redis 설치하고 실행해보기 레디스 받기 터미널에서 docker pull redis로 다운로드 받습니다. 받고 docker images 해보면 리스트에 추가됩니다. 도커로 컨테이너 생성 - test-redis docker run --name test-redis -p 6379:6379 -d redis 로 컨테이너에 올립니다. 그 후 docker ps 하시면 도커 위에 올라간 컨테이너 목록이 보입니다. docker exec -it test-redis /bin/bash 명령어로 redis 환경으로 들어갑니다. 그 후에 redis-cli를 치면 client 환경에 접속하게 됩니다. Redis Docker 컨테이너 시작 & 정지 & 재시작 Redis-cli 명령어 알아보기 Keys * 현재의 키값들을 확인할 수 있습니다. set key / .. 2022. 2. 3.
스프링 레디스 Redis 에러 Creating Server TCP listening socket *:6379: bind: No error 실행 환경 - 윈도우 , redis 3.0.504 버전 혹시나 이 오류를 만나셨다면 1. cmd를 관리자 권한으로 실행 시켜주세요 2. redis-cli.exe를 실행 시켜주세요 3. shutdown을 입력한 후에 exit로 종료해주세요 4. redis-server.exe redis.windows.conf를 cmd 창에 입력하면 redis server가 실행됩니다!! 2022. 1. 18.