Documentation ¶
Overview ¶
Package redis contains the Redis store implementation.
Index ¶
- Variables
- func New(endpoints []string, options *store.Config) (store.Store, error)
- func Register()
- type Codec
- type JSONCodec
- type RawCodec
- type Redis
- func (r *Redis) AtomicDelete(ctx context.Context, key string, previous *store.KVPair) (bool, error)
- func (r *Redis) AtomicPut(ctx context.Context, key string, value []byte, previous *store.KVPair, ...) (bool, *store.KVPair, error)
- func (r *Redis) Close() error
- func (r *Redis) Delete(ctx context.Context, key string) error
- func (r *Redis) DeleteTree(ctx context.Context, directory string) error
- func (r *Redis) Exists(ctx context.Context, key string, _ *store.ReadOptions) (bool, error)
- func (r *Redis) Get(ctx context.Context, key string, _ *store.ReadOptions) (*store.KVPair, error)
- func (r *Redis) List(ctx context.Context, directory string, _ *store.ReadOptions) ([]*store.KVPair, error)
- func (r *Redis) NewLock(_ context.Context, key string, options *store.LockOptions) (store.Locker, error)
- func (r *Redis) Put(ctx context.Context, key string, value []byte, options *store.WriteOptions) error
- func (r *Redis) Watch(ctx context.Context, key string, stopCh <-chan struct{}, _ *store.ReadOptions) (<-chan *store.KVPair, error)
- func (r *Redis) WatchTree(ctx context.Context, directory string, stopCh <-chan struct{}, ...) (<-chan []*store.KVPair, error)
Constants ¶
This section is empty.
Variables ¶
var ( // ErrMultipleEndpointsUnsupported is thrown when there are // multiple endpoints specified for Redis. ErrMultipleEndpointsUnsupported = errors.New("redis: does not support multiple endpoints") // ErrTLSUnsupported is thrown when tls config is given. ErrTLSUnsupported = errors.New("redis does not support tls") // 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 ¶
Types ¶
type Codec ¶
type Codec interface { Encode(kv *store.KVPair) (string, error) Decode(b []byte, kv *store.KVPair) error }
Codec KVPair persistence interface.
type JSONCodec ¶
type JSONCodec struct{}
JSONCodec is a simple codec to read and write valkeyrie JSON object.
type RawCodec ¶
type RawCodec struct{}
RawCodec is a simple codec to read and write string.
type Redis ¶
type Redis struct {
// contains filtered or unexported fields
}
Redis implements kvdb.Store interface with redis backend.
func (*Redis) AtomicDelete ¶
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(ctx context.Context, key string, value []byte, previous *store.KVPair, options *store.WriteOptions) (bool, *store.KVPair, 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) DeleteTree ¶
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) List ¶
func (r *Redis) List(ctx context.Context, directory string, _ *store.ReadOptions) ([]*store.KVPair, error)
List the content of a given prefix.
func (*Redis) NewLock ¶
func (r *Redis) NewLock(_ context.Context, key string, options *store.LockOptions) (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) Put ¶
func (r *Redis) Put(ctx context.Context, key string, value []byte, options *store.WriteOptions) error
Put a value at the specified key.