package memorydb
import "github.com/ethereum/go-ethereum/ethdb/memorydb"
Package memorydb implements the key-value database layer based on memory maps.
Index ¶
- type Database
- func New() *Database
- func NewWithCap(size int) *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) DeleteRange(start, end []byte) error
- func (db *Database) Get(key []byte) ([]byte, error)
- func (db *Database) Has(key []byte) (bool, error)
- func (db *Database) Len() int
- func (db *Database) NewBatch() ethdb.Batch
- func (db *Database) NewBatchWithSize(size int) ethdb.Batch
- func (db *Database) NewIterator(prefix []byte, start []byte) ethdb.Iterator
- func (db *Database) Put(key []byte, value []byte) error
- func (db *Database) Stat() (string, error)
- func (db *Database) SyncKeyValue() error
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database is an ephemeral 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 ¶
func New() *Database
New returns a wrapped map with all the required database interface methods implemented.
func NewWithCap ¶
NewWithCap returns a wrapped map pre-allocated to the provided capacity with all the required database interface methods implemented.
func (*Database) Close ¶
Close deallocates the internal map and ensures any consecutive data access op fails with an error.
func (*Database) Compact ¶
Compact is not supported on a memory database, but there's no need either as a memory database doesn't waste space anyway.
func (*Database) Delete ¶
Delete removes the key from the key-value store.
func (*Database) DeleteRange ¶
DeleteRange deletes all of the keys (and values) in the range [start,end) (inclusive on start, exclusive on end). If the start is nil, it represents the key before all keys; if the end is nil, it represents the key after all keys.
func (*Database) Get ¶
Get retrieves the given key if it's present in the key-value store.
func (*Database) Has ¶
Has retrieves if a key is present in the key-value store.
func (*Database) Len ¶
Len returns the number of entries currently present in the memory database.
Note, this method is only used for testing (i.e. not public in general) and does not have explicit checks for closed-ness to allow simpler testing code.
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) NewBatchWithSize ¶
NewBatchWithSize creates a write-only database batch with pre-allocated buffer.
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).
func (*Database) Put ¶
Put inserts the given value into the key-value store.
func (*Database) Stat ¶
Stat returns the statistic data of the database.
func (*Database) SyncKeyValue ¶
SyncKeyValue ensures that all pending writes are flushed to disk, guaranteeing data durability up to the point.
Source Files ¶
- Version
- v1.16.0 (latest)
- Published
- Jun 26, 2025
- Platform
- linux/amd64
- Imports
- 8 packages
- Last checked
- 6 hours ago –
Tools for package owners.