func (db *DB) HIncrBy(key []byte, field []byte, delta int64) (int64, error) { if err := checkHashKFSize(key, field); err != nil { return 0, err } t := db.hashBatch var ek []byte var err error t.Lock() defer t.Unlock() ek = db.hEncodeHashKey(key, field) var n int64 = 0 if n, err = StrInt64(db.bucket.Get(ek)); err != nil { return 0, err } n += delta _, err = db.hSetItem(key, field, num.FormatInt64ToSlice(n)) if err != nil { return 0, err } err = t.Commit() return n, err }
func (db *DB) incr(key []byte, delta int64) (int64, error) { if err := checkKeySize(key); err != nil { return 0, err } var err error key = db.encodeKVKey(key) t := db.kvBatch t.Lock() defer t.Unlock() var n int64 n, err = StrInt64(db.bucket.Get(key)) if err != nil { return 0, err } n += delta t.Put(key, num.FormatInt64ToSlice(n)) err = t.Commit() return n, err }