github.com/lingyao2333/mo-zero@v1.4.1/core/stores/redis/redistest/redistest.go (about) 1 package redistest 2 3 import ( 4 "time" 5 6 "github.com/alicebob/miniredis/v2" 7 "github.com/lingyao2333/mo-zero/core/lang" 8 "github.com/lingyao2333/mo-zero/core/stores/redis" 9 ) 10 11 // CreateRedis returns an in process redis.Redis. 12 func CreateRedis() (r *redis.Redis, clean func(), err error) { 13 mr, err := miniredis.Run() 14 if err != nil { 15 return nil, nil, err 16 } 17 18 return redis.New(mr.Addr()), func() { 19 ch := make(chan lang.PlaceholderType) 20 21 go func() { 22 mr.Close() 23 close(ch) 24 }() 25 26 select { 27 case <-ch: 28 case <-time.After(time.Second): 29 } 30 }, nil 31 }