session.go 634 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. @Time : 2019-08-21 11:19
  3. @Author : zr
  4. */
  5. package session
  6. import (
  7. "github.com/ZR233/session"
  8. "github.com/go-redis/redis/v7"
  9. "sync"
  10. "video_course/global"
  11. )
  12. var sessionManager *session.Manager
  13. var once sync.Once
  14. func newSM() {
  15. cfg, err := global.Config.GetRedis()
  16. if err != nil {
  17. panic(err)
  18. }
  19. opt := &redis.UniversalOptions{
  20. Addrs: cfg.Addrs,
  21. Password: cfg.Password,
  22. MasterName: cfg.Mastername,
  23. }
  24. db := session.NewRedisAdapter(opt, global.ProjectName+":"+global.AppName)
  25. sessionManager = session.NewManager(db)
  26. }
  27. func GetSessionManager() *session.Manager {
  28. once.Do(newSM)
  29. return sessionManager
  30. }