mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
45 lines
914 B
Go
45 lines
914 B
Go
|
package tikv
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"github.com/chrislusf/seaweedfs/weed/filer"
|
||
|
"github.com/tikv/client-go/v2/txnkv"
|
||
|
)
|
||
|
|
||
|
func (store *TikvStore) KvPut(ctx context.Context, key []byte, value []byte) error {
|
||
|
tw, err := store.getTxn(ctx)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return tw.RunInTxn(func(txn *txnkv.KVTxn) error {
|
||
|
return txn.Set(key, value)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func (store *TikvStore) KvGet(ctx context.Context, key []byte) ([]byte, error) {
|
||
|
tw, err := store.getTxn(ctx)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
var data []byte = nil
|
||
|
err = tw.RunInTxn(func(txn *txnkv.KVTxn) error {
|
||
|
val, err := txn.Get(context.TODO(), key)
|
||
|
if err == nil {
|
||
|
data = val
|
||
|
}
|
||
|
return err
|
||
|
})
|
||
|
return data, err
|
||
|
}
|
||
|
|
||
|
func (store *TikvStore) KvDelete(ctx context.Context, key []byte) error {
|
||
|
tw, err := store.getTxn(ctx)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return tw.RunInTxn(func(txn *txnkv.KVTxn) error {
|
||
|
return txn.Delete(key)
|
||
|
})
|
||
|
}
|