redis

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package redis provides a Redis-backed Storage adapter for Chronos.

It is built on the official go-redis client (github.com/redis/go-redis/v9), which handles RESP2/RESP3 framing, connection pooling, pipelining, TLS and reconnection correctly. The previous hand-rolled TCP/RESP implementation assumed every reply fit in a single 64KB Read and parsed replies with fragile string scanning; both bugs are eliminated by delegating the wire protocol to the maintained driver.

Data model: every record is stored as a JSON string under a namespaced key (chronos:<kind>:<id>). Secondary lookups (list-by-agent, list-by-session) are backed by per-owner sorted sets keyed by timestamp/sequence number so that listing is ordered and paginated without SCAN.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

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

Store implements storage.Storage using Redis.

func New

func New(addr, password string, db int) (*Store, error)

New creates a Redis storage adapter and verifies connectivity.

func NewWithClient added in v0.6.0

func NewWithClient(client redis.UniversalClient) *Store

NewWithClient wraps an existing go-redis client. Useful for tests (miniredis) and for callers that need custom connection options (TLS, cluster, pooling).

func (*Store) AppendAuditLog

func (s *Store) AppendAuditLog(ctx context.Context, log *storage.AuditLog) error

func (*Store) AppendEvent

func (s *Store) AppendEvent(ctx context.Context, e *storage.Event) error

func (*Store) Close

func (s *Store) Close() error

func (*Store) CreateSession

func (s *Store) CreateSession(ctx context.Context, sess *storage.Session) error

func (*Store) DeleteMemory

func (s *Store) DeleteMemory(ctx context.Context, id string) error

func (*Store) GetCheckpoint

func (s *Store) GetCheckpoint(ctx context.Context, id string) (*storage.Checkpoint, error)

func (*Store) GetLatestCheckpoint

func (s *Store) GetLatestCheckpoint(ctx context.Context, sessionID string) (*storage.Checkpoint, error)

func (*Store) GetMemory

func (s *Store) GetMemory(ctx context.Context, agentID, key string) (*storage.MemoryRecord, error)

func (*Store) GetSession

func (s *Store) GetSession(ctx context.Context, id string) (*storage.Session, error)

func (*Store) GetTrace

func (s *Store) GetTrace(ctx context.Context, id string) (*storage.Trace, error)

func (*Store) InsertTrace

func (s *Store) InsertTrace(ctx context.Context, t *storage.Trace) error

func (*Store) ListAuditLogs

func (s *Store) ListAuditLogs(ctx context.Context, sessionID string, limit, offset int) ([]*storage.AuditLog, error)

func (*Store) ListCheckpoints

func (s *Store) ListCheckpoints(ctx context.Context, sessionID string) ([]*storage.Checkpoint, error)

func (*Store) ListEvents

func (s *Store) ListEvents(ctx context.Context, sessionID string, afterSeq int64) ([]*storage.Event, error)

func (*Store) ListMemory

func (s *Store) ListMemory(ctx context.Context, agentID, kind string) ([]*storage.MemoryRecord, error)

func (*Store) ListSessions

func (s *Store) ListSessions(ctx context.Context, agentID string, limit, offset int) ([]*storage.Session, error)

func (*Store) ListTraces

func (s *Store) ListTraces(ctx context.Context, sessionID string) ([]*storage.Trace, error)

func (*Store) Migrate

func (s *Store) Migrate(_ context.Context) error

Migrate is a no-op for Redis; keyspaces are created lazily on first write.

func (*Store) PutMemory

func (s *Store) PutMemory(ctx context.Context, m *storage.MemoryRecord) error

func (*Store) SaveCheckpoint

func (s *Store) SaveCheckpoint(ctx context.Context, cp *storage.Checkpoint) error

func (*Store) UpdateSession

func (s *Store) UpdateSession(ctx context.Context, sess *storage.Session) error

Jump to

Keyboard shortcuts

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