agatan / isucon7-final

ISUCON7 本戦
2 stars 0 forks source link

すにぺっと #6

Open izumin5210 opened 6 years ago

izumin5210 commented 6 years ago

💪

izumin5210 commented 6 years ago

Initialize Redis pool

package main

import (
    "github.com/garyburd/redigo/redis"
)

var redisPool *redis.Pool

func initRedisPool() {
    redisURL := os.Getenv("REDIS_URL")
    if redisURL == "" {
        redisURL = "redis://localhost:6379"
    }
    redisPool = &redis.Pool{
        MaxIdle:     100,
        IdleTimeout: 10 * 60 * time.Second,

        Dial: func() (redis.Conn, error) {
            return redis.DialURL(redisURL)
        },
    }
}
izumin5210 commented 6 years ago

RDB connection pooling

db.SetConnMaxLifetime(10 * 60  * time.Second)
db.SetMaxIdleConns(1000)
// db.SetMaxOpenConns(1000) // inifinitie in default
izumin5210 commented 6 years ago

Handle errors

package main

var (
    debug = false
)

func handleError(err error) {
    if debug {
        panic(err)
    }
}
izumin5210 commented 6 years ago

Disable prepared statement

"%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local&interpolateParams=true",
agatan commented 6 years ago
users := []int{1, 2, 3}
query, args, err := sqlx.In("select * from users where id in (?)", users)
db.Select(&dst, query, args...)