Documentation ¶
Overview ¶
Package leveldb implements the key-value database layer based on LevelDB. 键值对数据库的levelDB实现
Index ¶
- type Database
- func (db *Database) Close() error
- func (db *Database) Compact(start []byte, limit []byte) error
- func (db *Database) Delete(key []byte) error
- func (db *Database) Get(key []byte) ([]byte, error)
- func (db *Database) Has(key []byte) (bool, error)
- func (db *Database) NewBatch() ethdb.Batch
- func (db *Database) NewIterator(prefix []byte, start []byte) ethdb.Iterator
- func (db *Database) Path() string
- func (db *Database) Put(key []byte, value []byte) error
- func (db *Database) Stat(property string) (string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database is a persistent key-value store. Apart from basic data storage functionality it also supports batch writes and iterating over the keyspace in binary-alphabetical order.
func New ¶
New returns a wrapped LevelDB object. The namespace is the prefix that the metrics reporting should use for surfacing internal stats. cache单位是兆字节 New函数直接调用NewCustom函数,内部定义了一个修改options的函数
func NewCustom ¶
func NewCustom(file string, namespace string, customize func(options *opt.Options)) (*Database, error)
NewCustom returns a wrapped LevelDB object. The namespace is the prefix that the metrics reporting should use for surfacing internal stats. The customize function allows the caller to modify the leveldb options. 用来创建一个Database对象,封装了LevelDB对象 file是保存数据库的位置,namespace是前缀 customize是用户定义的函数,用来对LevelDB的选项进行修改,可以传入nil代表使用默认选项
func (*Database) Close ¶
Close stops the metrics collection, flushes any pending data to disk and closes all io accesses to the underlying key-value store. 关闭数据库
func (*Database) Compact ¶
Compact flattens the underlying data store for the given key range. In essence, deleted and overwritten versions are discarded, and the data is rearranged to reduce the cost of operations needed to access them.
A nil start is treated as a key before all keys in the data store; a nil limit is treated as a key after all keys in the data store. If both is nil then it will compact entire data store.
func (*Database) NewBatch ¶
NewBatch creates a write-only key-value store that buffers changes to its host database until a final write is called.
func (*Database) NewIterator ¶
NewIterator creates a binary-alphabetical iterator over a subset of database content with a particular key prefix, starting at a particular initial key (or after, if it does not exist).