code: func (m *MongoCache) StartGC(gcInterval time.Duration) {
  	if gcInterval <= 0 {
  		return
  	}
  
  	ticker := time.NewTicker(gcInterval)
  	done := make(chan struct{})
  
  	m.Lock()
  	m.gcTicker = ticker
  	m.done = done
  	m.Unlock()
  
  	go func() {
  		for {
  			select {
  			case <-ticker.C:
  				m.Lock()
  				m.deleteExpiredKeys()
  				m.Unlock()
  			case <-done:
  				return
  			}
  		}
  	}()
  }
docs: // StartGC starts the garbage collector with given time interval The
  // expired data will be checked & deleted with given interval time