code: func (c *RegionCache) ListRegionIDsInKeyRange(bo *Backoffer, startKey, endKey []byte) (regionIDs []uint64, err error) {
  	for {
  		curRegion, err := c.LocateKey(bo, startKey)
  		if err != nil {
  			return nil, errors.Trace(err)
  		}
  		regionIDs = append(regionIDs, curRegion.Region.id)
  		if curRegion.Contains(endKey) {
  			break
  		}
  		startKey = curRegion.EndKey
  	}
  	return regionIDs, nil
  }
docs: // ListRegionIDsInKeyRange lists ids of regions in [start_key,end_key].