테스트 데이터 삽입 ‐ (8) 게시글 조회수 데이터 삽입 - ttasjwi/board-system GitHub Wiki
게시글 조회수
- 조회수는 Redis에 저장된다.
- 그러나 일단 2400만건 모두를 Redis에 올리기엔 비용적 한계가 있어서, 최근 100만건 게시글 중 랜덤으로 10% 확률로 조회수를 가지게 한다.
- 조회수는 1~1000 정도를 랜덤으로 가지게 한다.
게시글 조회수 생성
package com.ttasjwi.board.system.app.articleview.data
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
import java.io.File
import kotlin.random.Random
class ArticleViewCountDataInitializer {
@Test
@DisplayName("게시글 조회수 데이터 생성")
fun initialize() {
val startId = 23000001L
val endId = 24000000L
val outputFile = File("article-view-counts.txt")
outputFile.bufferedWriter().use { writer ->
for (articleId in startId..endId) {
// 10% 확률로 조회수 가짐
if (Random.nextDouble() < 0.1) {
val increment = Random.nextInt(1, 1001)
val command = "INCRBY board-system::article-view::article::$articleId::view-count $increment"
writer.write(command)
writer.newLine()
}
}
}
}
}
게시글 조회수 데이터 삽입
cat data/article-view-counts.txt | docker exec -i redis redis-cli --pipe