func xttl(db *ledis.DB, tp string, key []byte) (int64, error) { switch strings.ToUpper(tp) { case KVName: return db.TTL(key) case HashName: return db.HTTL(key) case ListName: return db.LTTL(key) case SetName: return db.STTL(key) case ZSetName: return db.ZTTL(key) default: return 0, fmt.Errorf("invalid key type %s", tp) } }