code: func (scg scanCommandGroup) xzscanCommand(c *client) error {
  	args := c.args
  
  	if len(args) < 2 {
  		return ErrCmdParams
  	}
  
  	key := args[0]
  
  	cursor, match, count, desc, err := scg.parseArgs(args[1:])
  
  	if err != nil {
  		return err
  	}
  
  	var ay []ledis.ScorePair
  
  	if !desc {
  		ay, err = c.db.ZScan(key, cursor, count, false, match)
  	} else {
  		ay, err = c.db.ZRevScan(key, cursor, count, false, match)
  	}
  
  	if err != nil {
  		return err
  	}
  
  	data := make([]interface{}, 2)
  	if len(ay) < count {
  		data[0] = scg.lastCursor
  	} else {
  		data[0] = ay[len(ay)-1].Member
  	}
  
  	vv := make([][]byte, 0, len(ay)*2)
  
  	for _, v := range ay {
  		vv = append(vv, v.Member, num.FormatInt64ToSlice(v.Score))
  	}
  
  	data[1] = vv
  
  	c.resp.writeArray(data)
  	return nil
  }
docs: // XZSCAN key cursor [MATCH match] [COUNT count] [ASC|DESC]