godocdb/storage/leveldb.go

39 lines
818 B
Go
Raw Normal View History

package storage
import (
"github.com/syndtr/goleveldb/leveldb"
)
// LevelDBStorage 封装LevelDB基础操作
type LevelDBStorage struct {
db *leveldb.DB
}
// NewLevelDBStorage 初始化LevelDB实例
func NewLevelDBStorage(path string) (*LevelDBStorage, error) {
db, err := leveldb.OpenFile(path, nil)
if err != nil {
return nil, err
}
return &LevelDBStorage{db: db}, nil
}
// Put 存储键值对
func (s *LevelDBStorage) Put(key []byte, value []byte) error {
return s.db.Put(key, value, nil)
}
// Get 获取键对应的值
func (s *LevelDBStorage) Get(key []byte) ([]byte, error) {
return s.db.Get(key, nil)
}
// Delete 删除指定键
func (s *LevelDBStorage) Delete(key []byte) error {
return s.db.Delete(key, nil)
}
// Close 关闭数据库连接
func (s *LevelDBStorage) Close() {
s.db.Close()
}