redis

package
v1.1.18 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMultipleEndpointsUnsupported is thrown when there are
	// multiple endpoints specified for Redis
	ErrMultipleEndpointsUnsupported = errors.New("redis does not support multiple endpoints")

	// ErrAbortTryLock is thrown when a user stops trying to seek the lock
	// by sending a signal to the stop chan, this is used to verify if the
	// operation succeeded
	ErrAbortTryLock = errors.New("redis: lock operation aborted")
)

Functions

This section is empty.

Types

type Redis

type Redis struct {
	// contains filtered or unexported fields
}

Redis implements libkv.Store interface with redis backend

func New

func New(endpoints []string, notification bool, options ...RedisOption) (*Redis, error)

New creates a new Redis client given a list of endpoints and optional config

func (*Redis) AtomicDelete

func (r *Redis) AtomicDelete(key string, previous *store.KeyValue) (bool, error)

AtomicDelete is an atomic delete operation on a single value the value will be deleted if previous matched the one stored in db

func (*Redis) AtomicPut

func (r *Redis) AtomicPut(key string, value []byte, previous *store.KeyValue, options ...store.PutOption) (*store.KeyValue, error)

AtomicPut is an atomic CAS operation on a single value. Pass previous = nil to create a new key. we introduced script on this page, so atomicity is guaranteed

func (*Redis) Close

func (r *Redis) Close()

Close the store connection

func (*Redis) Delete

func (r *Redis) Delete(key string) error

Delete the value at the specified key

func (*Redis) DeleteTree

func (r *Redis) DeleteTree(directory string) error

DeleteTree deletes a range of keys under a given directory glitch: we list all available keys first and then delete them all it costs two operations on redis, so is not atomicity.

func (*Redis) Exists

func (r *Redis) Exists(key string) (bool, error)

Exists verify if a Key exists in the store

func (*Redis) Get

func (r *Redis) Get(key string) (*store.KeyValue, error)

Get a value given its key

func (*Redis) List

func (r *Redis) List(directory string) ([]*store.KeyValue, error)

List the content of a given prefix

func (*Redis) Lock

func (r *Redis) Lock(key string, options ...store.LockOption) (store.Locker, error)

NewLock creates a lock for a given key. The returned Locker is not held and must be acquired with `.Lock`. The Value is optional.

func (*Redis) Ping

func (r *Redis) Ping() error

Ping is used to check if a connection is still alive

func (*Redis) Put

func (r *Redis) Put(key string, value []byte, options ...store.PutOption) error

Put a value at the specified key

func (*Redis) Watch

func (r *Redis) Watch(key string, stopCh <-chan struct{}) (<-chan *store.KeyValue, error)

Watch for changes on a key glitch: we use notified-then-retrieve to retrieve *store.KeyValue. so the responses may sometimes inaccurate

func (*Redis) WatchTree

func (r *Redis) WatchTree(directory string, stopCh <-chan struct{}) (<-chan []*store.KeyValue, error)

WatchTree watches for changes on child nodes under a given directory

type RedisOption

type RedisOption func(*redis.Options)

func DialTimeout

func DialTimeout(t time.Duration) RedisOption

func Password

func Password(pwd string) RedisOption

func PoolSize

func PoolSize(size int) RedisOption

func PoolTimeout

func PoolTimeout(t time.Duration) RedisOption

func ReadTimeout

func ReadTimeout(t time.Duration) RedisOption

func WriteTimeout

func WriteTimeout(t time.Duration) RedisOption

Jump to

Keyboard shortcuts

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