func CachedShortUrlBySlug(session *xorm.Session, slug string) (*ShortUrl, error) {
	id := k.GenId(slug)
	key := fmt.Sprintf("shorturl:%d:url", id)
	data, err := redis.Client.Get(key)
	if err == nil {
		s := ShortUrl{Id: id, Slug: slug, URL: string(data)}
		return &s, nil
	}
	s, err := ShortUrlById(session, id)
	if s != nil {
		go s.pull()
	}
	return s, err
}
func ShortUrlBySlug(session *xorm.Session, slug string) (*ShortUrl, error) {
	id := k.GenId(slug)
	return ShortUrlById(session, id)
}