전체 글
-
2. 레디스 DUMP 명령어Redis/Command 2019. 3. 12. 15:00
1. redis 2.6.0 부터 지원 2. 시간 복잡도 : 키에 접근하는데 O(1) 소요되고직렬화 하는데 O(N * M)이 소요됩니다.여기서 N은 값을 구성하는 Redis 객체의 수이고 M은 평균 크기 입니다. 짧은 문자열의 경우 시간 복잡도는 O(1) + O(1 * M)이고 M이 짧기 때문에 간단하게 O(1) 입니다.O(1)는 키에 액세스하고 추가 O (N * M)를 직렬화하여 N을 직렬화합니다. 여기서 N은 값을 구성하는 Redis 객체의 수이고 M은 평균 크기입니다. 작은 문자열 값의 경우 시간 복잡도는 O (1) + O (1 * M)이므로 M이 작기 때문에 단순히 O (1)입니다. 3. 키에 저장된 값을 Redis별 형식으로 직렬화하여 사용자에게 반환한다. 반환된 값은 RESTORE 명령을 사용하..
-
Spring boot 2 + Gradle 터미널에서 Build 시 cannot find symbol 오류Gradle 2019. 3. 11. 16:14
Spring boot 와 Gradle을 통해 로컬에서 테스트를 진행 중 build 관련하여 오류가 발생하였다. 개발환경은1. spring boot 2.1.32. gradle3. lombok 1.18.64. 인텔리제이 이고 오류 상황은 아래와 같다.1. 인텔리제이의 GUI gradle 툴을 사용해서 build 버튼을 눌렀을때는 정상적으로 Build 됨2. 터미널에서 gradle build 명령 시 오류 발생 아래는 오류 로그의 일부다. error: cannot find symbol log.info("test log"); ^ symbol: variable log 터미널에서만 빌드 시 오류가 발생하는 상황이었고 로그를 보며 원인을 생각해보았다.오류가 발생하는 시점은 Task :compileJava -> 즉 C..
-
1. 레디스 APPEND 명령어Redis/Command 2019. 3. 11. 10:41
1. Redis 2.0.0. 부터 지원 가능2. 시간 복잡성: O(1)Redis가 사용하는 동적 문자열 라이브러리는 재할당 시 사용 가능한 공간을 두 배로 늘리기 때문에, 추가된 값이 작고 이미 존재하는 값이 어떤 크기라고 가정하면 상각 시간의 복잡성은 O(1)이다.3. 키가 이미 존재하고 문자열인 경우 이 명령은 문자열 끝에 값을 추가합니다. 키가 존재하지 않으면 생성되고 빈 문자열로 설정되므로 APPEND는 이 특수한 경우 SET와 유사합니다.(JAVA의 StringBuilder처럼 APPEND 할때마다 해당 key의 value 값의 맨뒤에 value를 추가한다) Examplesredis> EXISTS mykey(integer) 0redis> APPEND mykey "Hello"(integer) 5r..
-
레디스(Redis) 한 번에 여러 명령어 호출 시 파이프라인 및 트랜잭션Redis 2019. 3. 8. 18:07
Redis의 경우 Client에서 Command를 실행 시 Redis Server와 TCP로 통신하기 때문에 간단한 키, 값 데이터를 여러번 반복해서 등록할 경우 다수의 TCP 통신 과정에서 오버헤드가 발생하여 latency가 지연될 수 있다. 이 경우 Redis에서는 한번에 여러 명령어를 파이프라인으로 실행하여 결과 값을 한번에 배열 등으로 리턴 받을 수 있는데 Spring RedisTemplate 에서는 아래와 같은 방법으로 사용할 수 있다. 아래는 한번에 여러명령어를 실행하는 예제이다. //pop a specified number of items from a queue List results = stringRedisTemplate.executePipelined( new RedisCallback() ..