code: func (db *DB) ZIncrBy(key []byte, delta int64, member []byte) (int64, error) {
  	if err := checkZSetKMSize(key, member); err != nil {
  		return InvalidScore, err
  	}
  
  	t := db.zsetBatch
  	t.Lock()
  	defer t.Unlock()
  
  	ek := db.zEncodeSetKey(key, member)
  
  	var oldScore int64
  	v, err := db.bucket.Get(ek)
  	if err != nil {
  		return InvalidScore, err
  	} else if v == nil {
  		db.zIncrSize(t, key, 1)
  	} else {
  		if oldScore, err = Int64(v, err); err != nil {
  			return InvalidScore, err
  		}
  	}
  
  	newScore := oldScore + delta
  	if newScore >= MaxScore || newScore <= MinScore {
  		return InvalidScore, errScoreOverflow
  	}
  
  	sk := db.zEncodeScoreKey(key, member, newScore)
  	t.Put(sk, []byte{})
  	t.Put(ek, PutInt64(newScore))
  
  	if v != nil {
  		// so as to update score, we must delete the old one
  		oldSk := db.zEncodeScoreKey(key, member, oldScore)
  		t.Delete(oldSk)
  	}
  
  	err = t.Commit()
  	return newScore, err
  }
docs: // ZIncrBy increases the score of member with delta.