Documentation ¶
Overview ¶
Package cache is an interface for distributed data cache.
Index ¶
- func Del(key string, opts ...DelOption) error
- func List(opts ...ListOption) ([]string, error)
- func Put(r *Record, opts ...PutOption) error
- type Cache
- type DelOption
- type DelOptions
- type GetOption
- type GetOptions
- type ListOption
- type ListOptions
- type Option
- type Options
- type PutOption
- type PutOptions
- type Record
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(opts ...ListOption) ([]string, error)
List returns any keys from the DefaultCache
Types ¶
type Cache ¶
type Cache interface { // Init initialises the cache. It must perform any required setup on the backing storage implementation and check that it is ready for use, returning any errors. Init(...Option) error // Options allows you to view the current options. Options() Options // Get takes a single key name and optional GetOptions. It returns matching []*Record or an error. Get(key string, opts ...GetOption) ([]*Record, error) // Put writes a record to the cache, and returns an error if the record was not written. Put(r *Record, opts ...PutOption) error // Del removes the record with the corresponding key from the cache. Del(key string, opts ...DelOption) error // List returns any keys that match, or an empty list with no error if none matched. List(opts ...ListOption) ([]string, error) // Close the cache Close() error // String returns the name of the implementation. String() string }
Cache is a data cache interface
type DelOptions ¶
type DelOptions struct {
Database, Table string
}
DelOptions configures an individual Del operation
type GetOption ¶
type GetOption func(r *GetOptions)
GetOption sets values in GetOptions
func GetOffset ¶
GetOffset starts returning responses from o. Use in conjunction with Limit for pagination
type GetOptions ¶
type GetOptions struct {
Database, Table string
// Prefix returns all records that are prefixed with key
Prefix bool
// Suffix returns all records that have the suffix key
Suffix bool
// Limit limits the number of returned records
Limit uint
// Offset when combined with Limit supports pagination
Offset uint
}
GetOptions configures an individual Get operation
type ListOption ¶
type ListOption func(l *ListOptions)
ListOption sets values in ListOptions
func ListLimit ¶
func ListLimit(l uint) ListOption
ListLimit limits the number of returned keys to l
func ListOffset ¶
func ListOffset(o uint) ListOption
ListOffset starts returning responses from o. Use in conjunction with Limit for pagination.
func ListPrefix ¶
func ListPrefix(p string) ListOption
ListPrefix returns all keys that are prefixed with key
func ListSuffix ¶
func ListSuffix(s string) ListOption
ListSuffix returns all keys that end with key
type ListOptions ¶
type ListOptions struct {
// List from the following
Database, Table string
// Prefix returns all keys that are prefixed with key
Prefix string
// Suffix returns all keys that end with key
Suffix string
// Limit limits the number of returned keys
Limit uint
// Offset when combined with Limit supports pagination
Offset uint
}
ListOptions configures an individual List operation
type Option ¶
type Option func(o *Options)
Option sets values in Options
func Nodes ¶
Nodes contains the addresses or other connection information of the backing storage. For example, an etcd implementation would contain the nodes of the cluster. A SQL implementation could contain one or more connection strings.
func WithClient ¶
WithClient sets the stores client to use for RPC
func WithContext ¶
WithContext sets the stores context, for any extra configuration
type Options ¶
type Options struct { // Nodes contains the addresses or other connection information of the backing storage. // For example, an etcd implementation would contain the nodes of the cluster. // A SQL implementation could contain one or more connection strings. Nodes []string // Database allows multiple isolated stores to be kept in one backend, if supported. Database string // Table is analagous to a table in database backends or a key prefix in KV backends Table string // Context should contain all implementation specific options, using context.WithValue. Context context.Context // Client to use for RPC Client client.Client }
Options contains configuration for the Cache
type PutOptions ¶
type PutOptions struct {
Database, Table string
// Expiry is the time the record expires
Expiry time.Time
// TTL is the time until the record expires
TTL time.Duration
}
PutOptions configures an individual Put operation If Expiry and TTL are set TTL takes precedence
type Record ¶
type Record struct { // The key to cache the record Key string `json:"key"` // The value within the record Value []byte `json:"value"` // Any associated metadata for indexing Metadata map[string]interface{} `json:"metadata"` // Time to expire a record: TODO: change to timestamp Expiry time.Duration `json:"expiry,omitempty"` }
Record is an item cached or retrieved from a Cache