dao.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package stat
  2. import (
  3. "fmt"
  4. "time"
  5. "go-common/app/job/main/favorite/conf"
  6. "go-common/library/cache/memcache"
  7. "go-common/library/cache/redis"
  8. "go-common/library/database/sql"
  9. )
  10. // Dao favorite dao.
  11. type Dao struct {
  12. db *sql.DB
  13. redis *redis.Pool
  14. mc *memcache.Pool
  15. redisExpire int
  16. ipExpire int
  17. buvidExpire int
  18. mcExpire int32
  19. }
  20. // New new a dao and return.
  21. func New(c *conf.Config) (d *Dao) {
  22. d = &Dao{
  23. db: sql.NewMySQL(c.DB.Fav),
  24. // redis
  25. redis: redis.NewPool(c.Redis.Config),
  26. redisExpire: int(time.Duration(c.Redis.Expire) / time.Second),
  27. ipExpire: int(time.Duration(c.Redis.IPExpire) / time.Second),
  28. buvidExpire: int(time.Duration(c.Redis.BuvidExpire) / time.Second),
  29. // memcache
  30. mc: memcache.NewPool(c.Memcache.Config),
  31. mcExpire: int32(time.Duration(c.Memcache.Expire) / time.Second),
  32. }
  33. return
  34. }
  35. // hit .
  36. func hit(id int64) (fid int64, table string) {
  37. fid = id / _folderStatSharding
  38. table = fmt.Sprintf("%02d", id%_folderStatSharding)
  39. return
  40. }