테스트 데이터 삽입 ‐ (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