개발/Test
[Test] Redis 조회 테스트
로그뉴
2022. 7. 13. 11:27
개요
RMapCache<String, String> 구조로 저장되어 있는 data 조회 테스트
- 조회는 Redis의 scan을 사용한다.
- scan 명령어는 정해진 count 개수 만큼 결과를 가져오고, offset 값을 반환 하기 때문에 keys 명령어 처럼 오랜 시간을 block 하지 않는다.
테스트 종류
1) count 최적치 테스트
- redis에서 iterator를 사용해 keySet을 불러올 수 있는데, 이 때 batch size(count)를 지정해 불러올 수 있다.
- readAllKeySet() 함수는 count 지정하지 않고 모두 불러오는 함수
테스트 방법: 100만건의 key 조회 테스트 - Collection 당 1만개의 key 존재, 100번의 collection을 for loop로 순회. collection scan 시 count 별 latency 측정
| count | 시간 (100만개) | 시간 (1만개) |
| 2000 | 4.04초 | 0.1초 |
| 5000 | 3.78초 → 3.84초 (2번째 시도) | 0.11초 |
| 6000 | 3.65초 → 3.75초 (2번째 시도) | 0.12초 |
| 0 (readAllKeySet) | 20.5초 | 0.38초 |
결론: keySet 호출시, count는 6000으로 진행한다.
2) exist key 성능 테스트
테스트 방법: redis에서 key를 찾는 것과, mysql에서 key를 찾는 시간 비교.
- redis에서 찾을 때에는 100개의 collection 순회 필요.
- 100만개 datakey 기준
| 구분 | 시간 (1개의 key) |
| redis | 0.38초 |
| mysql | 0.24초 |