고루틴으로 redis에 저장하는 코드 질문입니다.

golang에서 고루틴으로 동시 저장 처리를 테스트를 해보고 있는데 굉장히 느리다고 느껴져서 아무래도 고루틴을 잘 못 이해하고 있는 느낌이 들어서 질문글을 조금 남겨봅니다.


package main

import(
  "time"
  "fmt"
  "github.com/go-redis/redis"
)

func main() {
  startTime := time.Now()
  r := make(chan string)

  client := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "", // no password set
        DB:       0,  // use default DB
    })

  go func() {
    err := client.HSet("go_p", "111", "111").Err()
    if err != nil {
        panic(err)
    } else {
      r <- "111"
    }

  }()

  go func() {
    err := client.HSet("go_p", "222", "222").Err()
    if err != nil {
        panic(err)
    } else {
      r <- "222"
    }

  }()

  go func() {
    err := client.HSet("go_p", "333", "333").Err()
    if err != nil {
        panic(err)
    } else {
      r <- "333"
    }

  }()

  go func() {
    err := client.HSet("go_p", "444", "444").Err()
    if err != nil {
        panic(err)
    } else {
      r <- "444"
    }

  }()

  a, b, c, d := <- r, <- r, <- r, <- r

  elapsedTime := time.Since(startTime)

  fmt.Println(a,b,c,d)
  fmt.Printf("실행시간: %s\n", elapsedTime)

}

1초이상 걸리길래 아무래도 잘못된거같은데... 조금 조언좀 해주시면 감사하겠습니다.

  • 제 컴퓨터에서 실행하니 실행시간이 3ms ~ 4ms가 나오는데 혹시 한번만 더 확인 가능 하신지요? Def dict 2018.10.2 17:28
  • 저는 윈도우에서 하고 있는데 여러번해도 1초이상 나오더라구요.. jeongyounggi 2018.10.2 18:13

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.