db

package
v0.0.0-...-eb47728 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bucket

type Bucket struct {
	Name []byte
	// contains filtered or unexported fields
}

Bucket represents a collection of key/value pairs inside the database.

func (*Bucket) Delete

func (bk *Bucket) Delete(k []byte) error

Delete removes key `k`.

func (*Bucket) Get

func (bk *Bucket) Get(k []byte) (value []byte, err error)

Get retrieves the value for key `k`.

func (*Bucket) Insert

func (bk *Bucket) Insert(items []struct{ Key, Value []byte }) error

Insert iterates over a slice of k/v pairs, putting each item in the bucket as part of a single transaction. For large insertions, be sure to pre-sort your items (by Key in byte-sorted order), which will result in much more efficient insertion times and storage costs.

func (*Bucket) InsertNX

func (bk *Bucket) InsertNX(items []struct{ Key, Value []byte }) error

InsertNX (insert-if-not-exists) iterates over a slice of k/v pairs, putting each item in the bucket as part of a single transaction. Unlike Insert, however, InsertNX will not update the value for an existing key.

func (*Bucket) Items

func (bk *Bucket) Items() (items []Item, err error)

Items returns a slice of key/value pairs. Each k/v pair in the slice is of type Item (`struct{ Key, Value []byte }`).

func (*Bucket) Map

func (bk *Bucket) Map(do func(k, v []byte) error) error

Map applies `do` on each key/value pair.

func (*Bucket) MapPrefix

func (bk *Bucket) MapPrefix(do func(k, v []byte) error, pre []byte) error

MapPrefix applies `do` on each k/v pair of keys with prefix.

func (*Bucket) MapRange

func (bk *Bucket) MapRange(do func(k, v []byte) error, min, max []byte) error

MapRange applies `do` on each k/v pair of keys within range.

func (*Bucket) NewPrefixScanner

func (bk *Bucket) NewPrefixScanner(pre []byte) *PrefixScanner

NewPrefixScanner initializes a new prefix scanner.

func (*Bucket) NewRangeScanner

func (bk *Bucket) NewRangeScanner(min, max []byte) *RangeScanner

NewRangeScanner initializes a new range scanner. It takes a `min` and a `max` key for specifying the range paramaters.

func (*Bucket) PrefixItems

func (bk *Bucket) PrefixItems(pre []byte) (items []Item, err error)

PrefixItems returns a slice of key/value pairs for all keys with a given prefix. Each k/v pair in the slice is of type Item (`struct{ Key, Value []byte }`).

func (*Bucket) Put

func (bk *Bucket) Put(k, v []byte) error

Put inserts value `v` with key `k`.

func (*Bucket) PutNX

func (bk *Bucket) PutNX(k, v []byte) error

PutNX (put-if-not-exists) inserts value `v` with key `k` if key doesn't exist.

func (*Bucket) RangeItems

func (bk *Bucket) RangeItems(min []byte, max []byte) (items []Item, err error)

RangeItems returns a slice of key/value pairs for all keys within a given range. Each k/v pair in the slice is of type Item (`struct{ Key, Value []byte }`).

type DB

type DB struct {
	*bolt.DB
}

DB Type

A DB is a bolt database with convenience methods for working with buckets.

A DB embeds the exposed bolt.DB methods.

func Init

func Init(dbfile string) *DB

func Open

func Open(path string) (*DB, error)

func (*DB) Bucket

func (db *DB) Bucket(name []byte) (*Bucket, error)

func (*DB) Delete

func (db *DB) Delete(name []byte) error

Delete removes the named bucket.

type Item

type Item struct {
	Key   []byte
	Value []byte
}

An Item holds a key/value pair.

type PrefixScanner

type PrefixScanner struct {
	BucketName []byte
	Prefix     []byte
	// contains filtered or unexported fields
}

A PrefixScanner scans a bucket for keys with a given prefix.

func (*PrefixScanner) Count

func (ps *PrefixScanner) Count() (count int, err error)

Count returns a count of the keys with prefix.

func (*PrefixScanner) ItemMapping

func (ps *PrefixScanner) ItemMapping() (map[string][]byte, error)

ItemMapping returns a map of key/value pairs for keys with prefix. This only works with buckets whose keys are byte-sliced strings.

func (*PrefixScanner) Items

func (ps *PrefixScanner) Items() (items []Item, err error)

Items returns a slice of key/value pairs for keys with prefix.

func (*PrefixScanner) Keys

func (ps *PrefixScanner) Keys() (keys [][]byte, err error)

Keys returns a slice of keys with prefix.

func (*PrefixScanner) Map

func (ps *PrefixScanner) Map(do func(k, v []byte) error) error

Map applies `do` on each key/value pair for keys with prefix.

func (*PrefixScanner) Values

func (ps *PrefixScanner) Values() (values [][]byte, err error)

Values returns a slice of values for keys with prefix.

type RangeScanner

type RangeScanner struct {
	BucketName []byte
	Min        []byte
	Max        []byte
	// contains filtered or unexported fields
}

A RangeScanner scans a bucket for keys within a given range.

func (*RangeScanner) Count

func (rs *RangeScanner) Count() (count int, err error)

Count returns a count of the keys within the range.

func (*RangeScanner) ItemMapping

func (rs *RangeScanner) ItemMapping() (map[string][]byte, error)

ItemMapping returns a map of key/value pairs for keys within the range. This only works with buckets whose keys are byte-sliced strings.

func (*RangeScanner) Items

func (rs *RangeScanner) Items() (items []Item, err error)

Items returns a slice of key/value pairs for keys within the range. Note that the returned slice contains elements of type Item.

func (*RangeScanner) Keys

func (rs *RangeScanner) Keys() (keys [][]byte, err error)

Keys returns a slice of keys within the range.

func (*RangeScanner) Map

func (rs *RangeScanner) Map(do func(k, v []byte) error) error

Map applies `do` on each key/value pair for keys within range.

func (*RangeScanner) Values

func (rs *RangeScanner) Values() (values [][]byte, err error)

Values returns a slice of values for keys within the range.

type Scanner

type Scanner interface {
	// Map applies a func on each key/value pair scanned.
	Map(func(k, v []byte) error) error
	// Count returns a count of the scanned keys.
	Count() (int, error)
	// Keys returns a slice of the scanned keys.
	Keys() ([][]byte, error)
	// Values returns a slice of values from scanned keys.
	Values() ([][]byte, error)
	// Items returns a slice of k/v pairs from scanned keys.
	Items() ([]Item, error)
	// ItemMapping returns a mapping of k/v pairs from scanned keys.
	ItemMapping() (map[string][]byte, error)
}

A Scanner implements methods for scanning a subset of keys in a bucket and retrieving data from or about those keys.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL