39 lines
818 B
Go
39 lines
818 B
Go
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()
|
|
} |