redis

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package redis is a thin cache resource adapter.

Production Redis clients may be injected via Pinger/Commander interfaces. A local in-memory redis-like backend is provided for tests (no network).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	ID          resource.ResourceID
	DisplayName string
	Client      Pinger
	Generations GenerationController
	PingTimeout time.Duration
}

Config configures the redis cache resource.

type GenerationController

type GenerationController interface {
	Current(ctx context.Context) (uint64, error)
	Reserve(ctx context.Context) (uint64, error)
	Activate(ctx context.Context, gen uint64) error
	Abort(ctx context.Context, gen uint64) error
}

GenerationController coordinates cache rebuild generations.

type Local

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

Local is an in-memory redis-like pinger + store for tests.

func NewLocal

func NewLocal() *Local

NewLocal creates a healthy local fake.

func (*Local) Get

func (l *Local) Get(k string) (string, bool)

Get reads a value (test helper).

func (*Local) Ping

func (l *Local) Ping(context.Context) error

Ping implements Pinger.

func (*Local) Set

func (l *Local) Set(k, v string)

Set stores a value (test helper).

func (*Local) SetDown

func (l *Local) SetDown(v bool)

SetDown injects connectivity failure.

type LocalGenerations

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

LocalGenerations is an in-process generation controller.

func NewLocalGenerations

func NewLocalGenerations() *LocalGenerations

NewLocalGenerations creates a generation controller starting at 0.

func (*LocalGenerations) Abort

func (g *LocalGenerations) Abort(_ context.Context, gen uint64) error

func (*LocalGenerations) Activate

func (g *LocalGenerations) Activate(_ context.Context, gen uint64) error

func (*LocalGenerations) Current

func (g *LocalGenerations) Current(context.Context) (uint64, error)

func (*LocalGenerations) Reserve

func (g *LocalGenerations) Reserve(context.Context) (uint64, error)

type Pinger

type Pinger interface {
	Ping(ctx context.Context) error
}

Pinger checks connectivity (real redis clients can adapt to this).

type Resource

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

Resource implements resource.Resource for Redis-style caches.

func New

func New(cfg Config) (*Resource, error)

New validates and constructs a Resource.

func (*Resource) AbortGeneration

func (r *Resource) AbortGeneration(ctx context.Context, gen uint64) error

AbortGeneration aborts a reserved generation.

func (*Resource) ActivateGeneration

func (r *Resource) ActivateGeneration(ctx context.Context, gen uint64) error

ActivateGeneration activates a reserved generation.

func (*Resource) BuildGeneration

func (r *Resource) BuildGeneration(ctx context.Context) (uint64, error)

BuildGeneration reserves a new cache generation.

func (*Resource) Capabilities

func (r *Resource) Capabilities() resource.ResourceCapabilities

func (*Resource) Describe

func (r *Resource) Describe() resource.Description

func (*Resource) Health

func (*Resource) ID

func (r *Resource) ID() resource.ResourceID

func (*Resource) Kind

func (r *Resource) Kind() resource.Kind

func (*Resource) Snapshot

func (r *Resource) Snapshot(ctx context.Context) (map[string]string, error)

Snapshot is sanitized (no keys/values/passwords).

Jump to

Keyboard shortcuts

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