store

package
v0.0.0-...-a021f40 Latest Latest
Warning

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

Go to latest
Published: May 15, 2020 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package store is an interface for distribute data storage.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option func(o *Options)

func Namespace

func Namespace(ns string) Option

Namespace offers a way to have multiple isolated stores in the same backend, if supported.

func Nodes

func Nodes(a ...string) Option

Nodes is a list of nodes used to back the store

func Prefix

func Prefix(p string) Option

Prefix sets a prefix to any key ids used

type Options

type Options struct {
	// nodes to connect to
	Nodes []string
	// Namespace of the store
	Namespace string
	// Prefix of the keys used
	Prefix string
	// Suffix of the keys used
	Suffix string
	// Alternative options
	Context context.Context
}

type ReadOption

type ReadOption func(o *ReadOptions)

func ReadPrefix

func ReadPrefix() ReadOption

ReadPrefix uses the key as a prefix

func ReadSuffix

func ReadSuffix() ReadOption

ReadSuffix uses the key as a suffix

type ReadOptions

type ReadOptions struct {
	// Read key as a prefix
	Prefix bool
	// Read key as a suffix
	Suffix bool
}

type Record

type Record struct {
	Key    string
	Value  []byte
	Expiry time.Duration
}

Record represents a data record

type Store

type Store interface {
	// Initialise store options
	Init(...Option) error
	// List all the known records
	List() ([]*Record, error)
	// Read records with keys
	Read(key string, opts ...ReadOption) (*Record, error)
	// Write records
	Write(*Record) error
	// Delete records with keys
	Delete(key string) error
	// Name of the store
	String() string
}

Store is a data storage interface

var (
	// ErrNotFound is returned when a Read key doesn't exist
	ErrNotFound = errors.New("ENTRY_NOT_FOUND")
	// Default store
	DefaultStore Store = new(redis.Redis)
)

Directories

Path Synopsis
Package memory is a in-memory store store
Package memory is a in-memory store store

Jump to

Keyboard shortcuts

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