datastore

package module
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2025 License: Apache-2.0 Imports: 15 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultDatabaseCharset = ""

Params ref: https://gorm.io/docs/connecting_to_the_database.html

View Source
var DefaultDatabaseClientFoundRows = false
View Source
var DefaultDatabaseCollation = "utf8mb4_general_ci"
View Source
var DefaultDatabaseConnMaxIdleTime = 0
View Source
var DefaultDatabaseConnMaxLifetime = 20000
View Source
var DefaultDatabaseDialTimeout = "3s"
View Source
var DefaultDatabaseLoc = "Local"
View Source
var DefaultDatabaseMaxAllowedPacket = 25165824
View Source
var DefaultDatabaseMaxIdleConn = 2
View Source
var DefaultDatabaseMaxOpenConn = 4
View Source
var DefaultDatabaseMultiStatements = false
View Source
var DefaultDatabaseParseTime = true
View Source
var DefaultDatabasePostgresSSLMode = "disable"
View Source
var DefaultDatabasePostgresTimeZone = "Local"
View Source
var DefaultDatabaseReadTimeout = "30s"
View Source
var DefaultDatabaseWriteTimeout = "30s"
View Source
var DefaultRedisDialTimeout = 1000

DefaultRedisDialTimeout is the dial timeout in milliseconds used when creating new Redis connections.

View Source
var DefaultRedisIdleTimeout = 60000

DefaultRedisIdleTimeout is the idle connection timeout in milliseconds before an idle connection is closed.

View Source
var DefaultRedisMaxActive = 0

DefaultRedisMaxActive is the maximum number of active connections allowed in the pool (0 means unlimited).

View Source
var DefaultRedisMaxConnLifetime = 0

DefaultRedisMaxConnLifetime is the maximum lifetime in milliseconds for a connection before it is closed.

View Source
var DefaultRedisMaxIdle = 20

DefaultRedisMaxIdle is the maximum number of idle connections kept in the pool.

View Source
var DefaultRedisWait = false

DefaultRedisWait controls whether Get() waits for a connection when the pool is exhausted.

View Source
var RedisNotFound = fmt.Errorf("not_found")

RedisNotFound is returned when a key or record does not exist (nil reply).

Functions

This section is empty.

Types

type Cassandra

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

Cassandra represents a Cassandra database connection with separate read and write operations. It maintains separate connection pools for read and write operations to support different consistency requirements and potentially different endpoints.

func NewCassandra

func NewCassandra(profileName string) *Cassandra

NewCassandra creates a new Cassandra connection handler with the specified profile. Returns nil if the profile name is empty or if loading the profile fails.

func NewMockCassandra added in v1.2.0

func NewMockCassandra() *Cassandra

NewMockCassandra creates a Cassandra instance with mock operators.

func NewMockCassandraWithOps added in v1.2.0

func NewMockCassandraWithOps(writer, reader *MockCassandraOp) *Cassandra

NewMockCassandraWithOps creates a Cassandra instance with custom mock operators.

func (*Cassandra) Close

func (c *Cassandra) Close()

Close closes all active sessions (both reader and writer).

func (*Cassandra) Profile added in v1.1.8

func (c *Cassandra) Profile() secret.Cassandra

func (*Cassandra) Reader

func (c *Cassandra) Reader() CassandraOperator

Reader returns the CassandraOperator configured for read operations.

func (*Cassandra) Writer

func (c *Cassandra) Writer() CassandraOperator

Writer returns the CassandraOperator configured for write operations.

type CassandraColumnMetadata added in v1.1.9

type CassandraColumnMetadata struct {
	Columns map[string]CassandraColumnMetadataColumn
	// contains filtered or unexported fields
}

func (*CassandraColumnMetadata) ClusteringKeys added in v1.1.9

func (c *CassandraColumnMetadata) ClusteringKeys() (keys []string)

func (*CassandraColumnMetadata) KeyspaceName added in v1.1.9

func (c *CassandraColumnMetadata) KeyspaceName() string

func (*CassandraColumnMetadata) PartitionKeys added in v1.1.9

func (c *CassandraColumnMetadata) PartitionKeys() (keys []string)

func (*CassandraColumnMetadata) TableName added in v1.1.9

func (c *CassandraColumnMetadata) TableName() string

type CassandraColumnMetadataColumn added in v1.1.9

type CassandraColumnMetadataColumn struct {
	Name string
	Kind string
	Type string
}

func (*CassandraColumnMetadataColumn) IsClusteringKey added in v1.1.9

func (c *CassandraColumnMetadataColumn) IsClusteringKey() bool

func (*CassandraColumnMetadataColumn) IsPartitionKey added in v1.1.9

func (c *CassandraColumnMetadataColumn) IsPartitionKey() bool

type CassandraOp

type CassandraOp struct {
	MaxRetryAttempt int
	// contains filtered or unexported fields
}

CassandraOp represents operations for a Cassandra database connection.

func (*CassandraOp) Attempt added in v1.1.6

func (c *CassandraOp) Attempt(query gocql.RetryableQuery) bool

func (*CassandraOp) Close

func (c *CassandraOp) Close()

Close safely closes the current session if it exists.

func (*CassandraOp) ColumnsMetadata added in v1.1.9

func (c *CassandraOp) ColumnsMetadata() map[string]CassandraColumnMetadata

func (*CassandraOp) Config

func (c *CassandraOp) Config() *gocql.ClusterConfig

Config returns the underlying gocql cluster configuration.

func (*CassandraOp) Exec

func (c *CassandraOp) Exec(f func(session *gocql.Session)) error

func (*CassandraOp) GetRetryType added in v1.1.6

func (c *CassandraOp) GetRetryType(err error) gocql.RetryType

func (*CassandraOp) Keyspace added in v1.1.6

func (c *CassandraOp) Keyspace() string

func (*CassandraOp) NewSession

func (c *CassandraOp) NewSession() (*gocql.Session, error)

NewSession creates and returns a new Cassandra session. Returns nil if session creation fails.

func (*CassandraOp) ObserveConnect added in v1.1.6

func (c *CassandraOp) ObserveConnect(connect gocql.ObservedConnect)

func (*CassandraOp) Session

func (c *CassandraOp) Session() *gocql.Session

Session returns the current Cassandra session, creating it if it doesn't exist. Uses double-checked locking pattern for thread safety.

func (*CassandraOp) SetMaxRetryAttempt added in v1.2.0

func (c *CassandraOp) SetMaxRetryAttempt(maxRetry int)

SetMaxRetryAttempt sets the maximum retry attempts for testing purposes

type CassandraOperator added in v1.2.0

type CassandraOperator interface {
	// Session management
	Session() *gocql.Session
	NewSession() (*gocql.Session, error)
	Close()
	Exec(f func(session *gocql.Session)) error

	// Configuration access
	Keyspace() string
	Config() *gocql.ClusterConfig
	ColumnsMetadata() map[string]CassandraColumnMetadata

	// Configuration setters for testing
	SetMaxRetryAttempt(maxRetry int)
}

CassandraOperator defines the interface for Cassandra operations. This interface allows for both real and mock implementations, enabling comprehensive unit testing while maintaining API compatibility.

type CassandraProvider added in v1.2.0

type CassandraProvider interface {
	Writer() CassandraOperator
	Reader() CassandraOperator
	Profile() secret.Cassandra
	Close()
}

CassandraProvider defines the interface for Cassandra instances. This allows both real and mock Cassandra implementations.

type ConnParams

type ConnParams struct {
	Charset          string
	Timeout          string
	ReadTimeout      string
	WriteTimeout     string
	Collation        string
	Loc              string
	ClientFoundRows  bool
	ParseTime        bool
	MultiStatements  bool
	MaxAllowedPacket int
	MaxOpenConn      int
	MaxIdleConn      int
	ConnMaxLifetime  int
	ConnMaxIdleTime  int
	SSLMode          string
	TimeZone         string
}

type Database

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

func NewDatabase

func NewDatabase(profileName string) *Database

func NewMockDatabase added in v1.2.0

func NewMockDatabase() *Database

NewMockDatabase creates a Database instance with mock operators.

func NewMockDatabaseWithOps added in v1.2.0

func NewMockDatabaseWithOps(writer, reader *MockDatabaseOp) *Database

NewMockDatabaseWithOps creates a Database instance with custom mock operators.

func (*Database) Reader

func (k *Database) Reader() DatabaseOperator

func (*Database) Writer

func (k *Database) Writer() DatabaseOperator

type DatabaseOp

type DatabaseOp struct {
	ConnParams  ConnParams
	MysqlParams MysqlParams
	GORMParams  gorm.Config
	Logger      logger.Interface
	// contains filtered or unexported fields
}

func (*DatabaseOp) Adapter

func (o *DatabaseOp) Adapter() string

func (*DatabaseOp) DB

func (o *DatabaseOp) DB() *gorm.DB

func (*DatabaseOp) GetConnParams added in v1.2.0

func (o *DatabaseOp) GetConnParams() ConnParams

GetConnParams returns the current connection parameters

func (*DatabaseOp) GetGORMParams added in v1.2.0

func (o *DatabaseOp) GetGORMParams() gorm.Config

GetGORMParams returns the current GORM configuration

func (*DatabaseOp) GetLogger added in v1.2.0

func (o *DatabaseOp) GetLogger() logger.Interface

GetLogger returns the current logger interface

func (*DatabaseOp) GetMysqlParams added in v1.2.0

func (o *DatabaseOp) GetMysqlParams() MysqlParams

GetMysqlParams returns the current MySQL-specific parameters

func (*DatabaseOp) Meta added in v1.2.0

func (o *DatabaseOp) Meta() secret.DatabaseMeta

Meta returns the database metadata

func (*DatabaseOp) SetConnParams added in v1.2.0

func (o *DatabaseOp) SetConnParams(params ConnParams)

SetConnParams sets the connection parameters

func (*DatabaseOp) SetGORMParams added in v1.2.0

func (o *DatabaseOp) SetGORMParams(config gorm.Config)

SetGORMParams sets the GORM configuration

func (*DatabaseOp) SetLogger added in v1.2.0

func (o *DatabaseOp) SetLogger(logger logger.Interface)

SetLogger sets the logger interface

func (*DatabaseOp) SetMysqlParams added in v1.2.0

func (o *DatabaseOp) SetMysqlParams(params MysqlParams)

SetMysqlParams sets the MySQL-specific parameters

type DatabaseOperator added in v1.2.0

type DatabaseOperator interface {
	// Core database access
	DB() *gorm.DB
	Adapter() string

	// Configuration access
	GetConnParams() ConnParams
	GetMysqlParams() MysqlParams
	GetGORMParams() gorm.Config
	GetLogger() logger.Interface
	Meta() secret.DatabaseMeta

	// Configuration setters
	SetConnParams(params ConnParams)
	SetMysqlParams(params MysqlParams)
	SetGORMParams(config gorm.Config)
	SetLogger(logger logger.Interface)
}

DatabaseOperator defines the interface for database operations. This interface allows for both real and mock implementations, enabling comprehensive unit testing while maintaining API compatibility.

type DatabaseProvider added in v1.2.0

type DatabaseProvider interface {
	Writer() DatabaseOperator
	Reader() DatabaseOperator
}

DatabaseProvider defines the interface for Database instances. This allows both real and mock Database implementations.

type MockCallRecord added in v1.2.0

type MockCallRecord struct {
	Timestamp time.Time
	Command   string
	Args      []interface{}
	Response  interface{}
	Error     error
}

MockCallRecord represents a single Redis command call record for testing verification.

type MockCassandraBuilder added in v1.2.0

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

MockCassandraBuilder provides a fluent interface for building mock Cassandra instances.

func NewMockCassandraBuilder added in v1.2.0

func NewMockCassandraBuilder() *MockCassandraBuilder

NewMockCassandraBuilder creates a new builder for mock Cassandra instances.

func (*MockCassandraBuilder) Build added in v1.2.0

func (b *MockCassandraBuilder) Build() *Cassandra

Build creates the mock Cassandra instance.

func (*MockCassandraBuilder) WithName added in v1.2.0

WithName sets the instance name.

func (*MockCassandraBuilder) WithProfile added in v1.2.0

func (b *MockCassandraBuilder) WithProfile(profile secret.Cassandra) *MockCassandraBuilder

WithProfile sets the Cassandra profile.

func (*MockCassandraBuilder) WithReaderKeyspace added in v1.2.0

func (b *MockCassandraBuilder) WithReaderKeyspace(keyspace string) *MockCassandraBuilder

WithReaderKeyspace sets the reader's keyspace.

func (*MockCassandraBuilder) WithReaderSession added in v1.2.0

func (b *MockCassandraBuilder) WithReaderSession(session *gocql.Session) *MockCassandraBuilder

WithReaderSession sets the reader's mock session.

func (*MockCassandraBuilder) WithWriterKeyspace added in v1.2.0

func (b *MockCassandraBuilder) WithWriterKeyspace(keyspace string) *MockCassandraBuilder

WithWriterKeyspace sets the writer's keyspace.

func (*MockCassandraBuilder) WithWriterSession added in v1.2.0

func (b *MockCassandraBuilder) WithWriterSession(session *gocql.Session) *MockCassandraBuilder

WithWriterSession sets the writer's mock session.

type MockCassandraCall added in v1.2.0

type MockCassandraCall struct {
	Timestamp time.Time
	Method    string
	Args      []interface{}
	Result    interface{}
	Error     error
}

MockCassandraCall represents a recorded Cassandra operation call.

type MockCassandraOp added in v1.2.0

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

MockCassandraOp is a mock implementation of CassandraOperator for testing. It provides configurable responses and tracks all operations for test verification.

func NewMockCassandraOp added in v1.2.0

func NewMockCassandraOp() *MockCassandraOp

NewMockCassandraOp creates a new mock Cassandra operator with default settings.

func (*MockCassandraOp) ClearCallHistory added in v1.2.0

func (m *MockCassandraOp) ClearCallHistory()

ClearCallHistory resets all recorded calls.

func (*MockCassandraOp) Close added in v1.2.0

func (m *MockCassandraOp) Close()

Close simulates closing the session.

func (*MockCassandraOp) ColumnsMetadata added in v1.2.0

func (m *MockCassandraOp) ColumnsMetadata() map[string]CassandraColumnMetadata

ColumnsMetadata returns the configured column metadata.

func (*MockCassandraOp) Config added in v1.2.0

func (m *MockCassandraOp) Config() *gocql.ClusterConfig

Config returns the mock cluster configuration.

func (*MockCassandraOp) Exec added in v1.2.0

func (m *MockCassandraOp) Exec(f func(session *gocql.Session)) error

Exec executes a function with the mock session.

func (*MockCassandraOp) GetCallHistory added in v1.2.0

func (m *MockCassandraOp) GetCallHistory() []MockCassandraCall

GetCallHistory returns all recorded method calls.

func (*MockCassandraOp) GetCallsByMethod added in v1.2.0

func (m *MockCassandraOp) GetCallsByMethod(method string) []MockCassandraCall

GetCallsByMethod returns calls filtered by method name.

func (*MockCassandraOp) IsSessionClosed added in v1.2.0

func (m *MockCassandraOp) IsSessionClosed() bool

IsSessionClosed returns whether the session was closed.

func (*MockCassandraOp) Keyspace added in v1.2.0

func (m *MockCassandraOp) Keyspace() string

Keyspace returns the configured keyspace name.

func (*MockCassandraOp) NewSession added in v1.2.0

func (m *MockCassandraOp) NewSession() (*gocql.Session, error)

NewSession creates a new mock session.

func (*MockCassandraOp) Session added in v1.2.0

func (m *MockCassandraOp) Session() *gocql.Session

Session returns the configured mock session.

func (*MockCassandraOp) SetColumnsMetadata added in v1.2.0

func (m *MockCassandraOp) SetColumnsMetadata(metadata map[string]CassandraColumnMetadata)

SetColumnsMetadata sets the column metadata.

func (*MockCassandraOp) SetConfig added in v1.2.0

func (m *MockCassandraOp) SetConfig(config *gocql.ClusterConfig)

SetConfig sets the cluster configuration.

func (*MockCassandraOp) SetExecError added in v1.2.0

func (m *MockCassandraOp) SetExecError(err error)

SetExecError configures the Exec() method to return an error.

func (*MockCassandraOp) SetKeyspace added in v1.2.0

func (m *MockCassandraOp) SetKeyspace(keyspace string)

SetKeyspace sets the keyspace name.

func (*MockCassandraOp) SetMaxRetryAttempt added in v1.2.0

func (m *MockCassandraOp) SetMaxRetryAttempt(maxRetry int)

SetMaxRetryAttempt sets the maximum retry attempts.

func (*MockCassandraOp) SetMockSession added in v1.2.0

func (m *MockCassandraOp) SetMockSession(session *gocql.Session)

SetMockSession sets the mock session to return.

func (*MockCassandraOp) SetNewSessionResponse added in v1.2.0

func (m *MockCassandraOp) SetNewSessionResponse(session *gocql.Session, err error)

SetNewSessionResponse configures the NewSession() method response.

func (*MockCassandraOp) SetReturnNilSession added in v1.2.0

func (m *MockCassandraOp) SetReturnNilSession(returnNil bool)

SetReturnNilSession configures Session() to always return nil.

func (*MockCassandraOp) SetSessionResponse added in v1.2.0

func (m *MockCassandraOp) SetSessionResponse(session *gocql.Session, err error)

SetSessionResponse configures the Session() method response.

func (*MockCassandraOp) SimulateFailure added in v1.2.0

func (m *MockCassandraOp) SimulateFailure(fail bool)

SimulateFailure configures methods to simulate failures.

type MockConditionFunc added in v1.2.0

type MockConditionFunc func(cmd string, args []interface{}) bool

MockConditionFunc defines a function that determines if a condition matches for conditional responses.

type MockConditionRule added in v1.2.0

type MockConditionRule struct {
	Command   string
	Condition MockConditionFunc
	Response  MockResponse
}

MockConditionRule represents a conditional response rule.

type MockDatabaseBuilder added in v1.2.0

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

MockDatabaseBuilder provides a fluent interface for building mock Database instances.

func NewMockDatabaseBuilder added in v1.2.0

func NewMockDatabaseBuilder() *MockDatabaseBuilder

NewMockDatabaseBuilder creates a new builder for mock Database instances.

func (*MockDatabaseBuilder) Build added in v1.2.0

func (b *MockDatabaseBuilder) Build() *Database

Build creates the mock Database instance.

func (*MockDatabaseBuilder) WithReaderAdapter added in v1.2.0

func (b *MockDatabaseBuilder) WithReaderAdapter(adapter string) *MockDatabaseBuilder

WithReaderAdapter sets the reader's adapter.

func (*MockDatabaseBuilder) WithReaderDB added in v1.2.0

func (b *MockDatabaseBuilder) WithReaderDB(db *gorm.DB) *MockDatabaseBuilder

WithReaderDB sets the reader's mock database.

func (*MockDatabaseBuilder) WithReaderMeta added in v1.2.0

func (b *MockDatabaseBuilder) WithReaderMeta(meta secret.DatabaseMeta) *MockDatabaseBuilder

WithReaderMeta sets the reader's metadata.

func (*MockDatabaseBuilder) WithWriterAdapter added in v1.2.0

func (b *MockDatabaseBuilder) WithWriterAdapter(adapter string) *MockDatabaseBuilder

WithWriterAdapter sets the writer's adapter.

func (*MockDatabaseBuilder) WithWriterDB added in v1.2.0

func (b *MockDatabaseBuilder) WithWriterDB(db *gorm.DB) *MockDatabaseBuilder

WithWriterDB sets the writer's mock database.

func (*MockDatabaseBuilder) WithWriterMeta added in v1.2.0

func (b *MockDatabaseBuilder) WithWriterMeta(meta secret.DatabaseMeta) *MockDatabaseBuilder

WithWriterMeta sets the writer's metadata.

type MockDatabaseCall added in v1.2.0

type MockDatabaseCall struct {
	Timestamp time.Time
	Method    string
	Args      []interface{}
	Result    interface{}
	Error     error
}

MockDatabaseCall represents a recorded database operation call.

type MockDatabaseOp added in v1.2.0

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

MockDatabaseOp is a mock implementation of DatabaseOperator for testing. It provides configurable responses and tracks all operations for test verification.

func NewMockDatabaseOp added in v1.2.0

func NewMockDatabaseOp() *MockDatabaseOp

NewMockDatabaseOp creates a new mock database operator with default settings.

func (*MockDatabaseOp) Adapter added in v1.2.0

func (m *MockDatabaseOp) Adapter() string

Adapter returns the configured adapter name.

func (*MockDatabaseOp) ClearCallHistory added in v1.2.0

func (m *MockDatabaseOp) ClearCallHistory()

ClearCallHistory resets all recorded calls.

func (*MockDatabaseOp) DB added in v1.2.0

func (m *MockDatabaseOp) DB() *gorm.DB

DB returns the configured mock database instance.

func (*MockDatabaseOp) GetCallHistory added in v1.2.0

func (m *MockDatabaseOp) GetCallHistory() []MockDatabaseCall

GetCallHistory returns all recorded method calls.

func (*MockDatabaseOp) GetCallsByMethod added in v1.2.0

func (m *MockDatabaseOp) GetCallsByMethod(method string) []MockDatabaseCall

GetCallsByMethod returns calls filtered by method name.

func (*MockDatabaseOp) GetConnParams added in v1.2.0

func (m *MockDatabaseOp) GetConnParams() ConnParams

GetConnParams returns the connection parameters.

func (*MockDatabaseOp) GetDBCallCount added in v1.2.0

func (m *MockDatabaseOp) GetDBCallCount() int

GetDBCallCount returns the number of times DB() was called.

func (*MockDatabaseOp) GetGORMParams added in v1.2.0

func (m *MockDatabaseOp) GetGORMParams() gorm.Config

GetGORMParams returns the GORM configuration.

func (*MockDatabaseOp) GetLogger added in v1.2.0

func (m *MockDatabaseOp) GetLogger() logger.Interface

GetLogger returns the logger interface.

func (*MockDatabaseOp) GetMysqlParams added in v1.2.0

func (m *MockDatabaseOp) GetMysqlParams() MysqlParams

GetMysqlParams returns the MySQL-specific parameters.

func (*MockDatabaseOp) Meta added in v1.2.0

func (m *MockDatabaseOp) Meta() secret.DatabaseMeta

Meta returns the database metadata.

func (*MockDatabaseOp) SetAdapterResponse added in v1.2.0

func (m *MockDatabaseOp) SetAdapterResponse(adapter string)

SetAdapterResponse sets the adapter name to return.

func (*MockDatabaseOp) SetConnParams added in v1.2.0

func (m *MockDatabaseOp) SetConnParams(params ConnParams)

SetConnParams sets the connection parameters.

func (*MockDatabaseOp) SetDBResponse added in v1.2.0

func (m *MockDatabaseOp) SetDBResponse(db *gorm.DB, err error)

SetDBResponse configures the DB() method to return specific response.

func (*MockDatabaseOp) SetGORMParams added in v1.2.0

func (m *MockDatabaseOp) SetGORMParams(config gorm.Config)

SetGORMParams sets the GORM configuration.

func (*MockDatabaseOp) SetLogger added in v1.2.0

func (m *MockDatabaseOp) SetLogger(logger logger.Interface)

SetLogger sets the logger interface.

func (*MockDatabaseOp) SetMeta added in v1.2.0

func (m *MockDatabaseOp) SetMeta(meta secret.DatabaseMeta)

SetMeta sets the database metadata.

func (*MockDatabaseOp) SetMockDB added in v1.2.0

func (m *MockDatabaseOp) SetMockDB(db *gorm.DB)

SetMockDB sets the mock database instance to return.

func (*MockDatabaseOp) SetMysqlParams added in v1.2.0

func (m *MockDatabaseOp) SetMysqlParams(params MysqlParams)

SetMysqlParams sets the MySQL-specific parameters.

func (*MockDatabaseOp) SetReturnNilDB added in v1.2.0

func (m *MockDatabaseOp) SetReturnNilDB(returnNil bool)

SetReturnNilDB configures DB() to always return nil.

func (*MockDatabaseOp) SimulateDBFailure added in v1.2.0

func (m *MockDatabaseOp) SimulateDBFailure(fail bool)

SimulateDBFailure configures DB() to return nil (simulating connection failure).

type MockRedisBuilder added in v1.2.0

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

MockRedisBuilder provides a fluent interface for configuring mock Redis instances.

func NewMockRedisBuilder added in v1.2.0

func NewMockRedisBuilder() *MockRedisBuilder

NewMockRedisBuilder creates a new builder for configuring mock Redis instances.

func (*MockRedisBuilder) Build added in v1.2.0

func (b *MockRedisBuilder) Build() *Redis

Build creates the configured Redis instance.

func (*MockRedisBuilder) GetMasterMock added in v1.2.0

func (b *MockRedisBuilder) GetMasterMock() *MockRedisOp

GetMasterMock returns the master mock for advanced configuration.

func (*MockRedisBuilder) GetSlaveMock added in v1.2.0

func (b *MockRedisBuilder) GetSlaveMock() *MockRedisOp

GetSlaveMock returns the slave mock for advanced configuration.

func (*MockRedisBuilder) WithConditionalResponse added in v1.2.0

func (b *MockRedisBuilder) WithConditionalResponse(cmd string, condition MockConditionFunc, response MockResponse) *MockRedisBuilder

WithConditionalResponse configures conditional responses for both master and slave.

func (*MockRedisBuilder) WithMasterResponse added in v1.2.0

func (b *MockRedisBuilder) WithMasterResponse(cmd, key string, data interface{}, err error) *MockRedisBuilder

WithMasterResponse configures a response for master operations.

func (*MockRedisBuilder) WithResponse added in v1.2.0

func (b *MockRedisBuilder) WithResponse(cmd, key string, data interface{}, err error) *MockRedisBuilder

WithResponse configures a response for both master and slave operations.

func (*MockRedisBuilder) WithSequentialResponses added in v1.2.0

func (b *MockRedisBuilder) WithSequentialResponses(cmd, key string, responses []MockResponse) *MockRedisBuilder

WithSequentialResponses configures sequential responses for both master and slave.

func (*MockRedisBuilder) WithSlaveResponse added in v1.2.0

func (b *MockRedisBuilder) WithSlaveResponse(cmd, key string, data interface{}, err error) *MockRedisBuilder

WithSlaveResponse configures a response for slave operations.

type MockRedisConn added in v1.2.0

type MockRedisConn struct{}

MockRedisConn implements redis.Conn interface for testing

func (*MockRedisConn) Close added in v1.2.0

func (c *MockRedisConn) Close() error

func (*MockRedisConn) Do added in v1.2.0

func (c *MockRedisConn) Do(commandName string, args ...interface{}) (reply interface{}, err error)

func (*MockRedisConn) Err added in v1.2.0

func (c *MockRedisConn) Err() error

func (*MockRedisConn) Flush added in v1.2.0

func (c *MockRedisConn) Flush() error

func (*MockRedisConn) Receive added in v1.2.0

func (c *MockRedisConn) Receive() (reply interface{}, err error)

func (*MockRedisConn) Send added in v1.2.0

func (c *MockRedisConn) Send(commandName string, args ...interface{}) error

type MockRedisOp added in v1.2.0

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

MockRedisOp implements RedisOperator interface for testing purposes. It provides a full mock implementation that can simulate Redis behavior, record call history, and return configured responses.

func NewMockRedisOp added in v1.2.0

func NewMockRedisOp() *MockRedisOp

NewMockRedisOp creates a new MockRedisOp instance.

func (*MockRedisOp) ActiveCount added in v1.2.0

func (m *MockRedisOp) ActiveCount() int

func (*MockRedisOp) Append added in v1.2.0

func (m *MockRedisOp) Append(key interface{}, val interface{}) *RedisResponse

func (*MockRedisOp) ClearCallHistory added in v1.2.0

func (m *MockRedisOp) ClearCallHistory()

ClearCallHistory clears all recorded call history.

func (*MockRedisOp) Close added in v1.2.0

func (m *MockRedisOp) Close() error

func (*MockRedisOp) Conn added in v1.2.0

func (m *MockRedisOp) Conn() redis.Conn

func (*MockRedisOp) Copy added in v1.2.0

func (m *MockRedisOp) Copy(src, dst interface{}) *RedisResponse

func (*MockRedisOp) Decr added in v1.2.0

func (m *MockRedisOp) Decr(key interface{}) *RedisResponse

func (*MockRedisOp) DecrBy added in v1.2.0

func (m *MockRedisOp) DecrBy(key interface{}, val int64) *RedisResponse

func (*MockRedisOp) Delete added in v1.2.0

func (m *MockRedisOp) Delete(key ...interface{}) *RedisResponse

func (*MockRedisOp) Dump added in v1.2.0

func (m *MockRedisOp) Dump(key interface{}) *RedisResponse

func (*MockRedisOp) Eval added in v1.2.0

func (m *MockRedisOp) Eval(script string, keys []interface{}, args []interface{}) *RedisResponse

Script operations

func (*MockRedisOp) Exec added in v1.2.0

func (m *MockRedisOp) Exec(f func(conn redis.Conn)) error

func (*MockRedisOp) Exists added in v1.2.0

func (m *MockRedisOp) Exists(key ...interface{}) *RedisResponse

func (*MockRedisOp) Expire added in v1.2.0

func (m *MockRedisOp) Expire(key interface{}, ttl int64) *RedisResponse

Key operations

func (*MockRedisOp) FlushAll added in v1.2.0

func (m *MockRedisOp) FlushAll() *RedisResponse

func (*MockRedisOp) FlushDB added in v1.2.0

func (m *MockRedisOp) FlushDB() *RedisResponse

Admin operations

func (*MockRedisOp) Get added in v1.2.0

func (m *MockRedisOp) Get(key interface{}) *RedisResponse

String operations

func (*MockRedisOp) GetCallCount added in v1.2.0

func (m *MockRedisOp) GetCallCount(cmd string) int

GetCallCount returns the number of times a specific command was called.

func (*MockRedisOp) GetCallHistory added in v1.2.0

func (m *MockRedisOp) GetCallHistory() []MockCallRecord

GetCallHistory returns all recorded call history.

func (*MockRedisOp) GetCallsByCommand added in v1.2.0

func (m *MockRedisOp) GetCallsByCommand(command string) []MockCallRecord

GetCallsByCommand returns all recorded calls for a specific command.

func (*MockRedisOp) GetLastCall added in v1.2.0

func (m *MockRedisOp) GetLastCall() *MockCallRecord

GetLastCall returns the most recent call record, or nil if no calls made.

func (*MockRedisOp) GetRange added in v1.2.0

func (m *MockRedisOp) GetRange(key interface{}, start, end int64) *RedisResponse

func (*MockRedisOp) HDel added in v1.2.0

func (m *MockRedisOp) HDel(key interface{}, field ...interface{}) *RedisResponse

func (*MockRedisOp) HExists added in v1.2.0

func (m *MockRedisOp) HExists(key, field interface{}) *RedisResponse

func (*MockRedisOp) HGet added in v1.2.0

func (m *MockRedisOp) HGet(key, field interface{}) *RedisResponse

func (*MockRedisOp) HGetAll added in v1.2.0

func (m *MockRedisOp) HGetAll(key interface{}) *RedisResponse

func (*MockRedisOp) HIncrBy added in v1.2.0

func (m *MockRedisOp) HIncrBy(key interface{}, field interface{}, val int64) *RedisResponse

func (*MockRedisOp) HKeys added in v1.2.0

func (m *MockRedisOp) HKeys(key interface{}) *RedisResponse

func (*MockRedisOp) HLen added in v1.2.0

func (m *MockRedisOp) HLen(key interface{}) *RedisResponse

func (*MockRedisOp) HMGet added in v1.2.0

func (m *MockRedisOp) HMGet(key interface{}, field ...interface{}) *RedisResponse

func (*MockRedisOp) HMSet added in v1.2.0

func (m *MockRedisOp) HMSet(key interface{}, val map[interface{}]interface{}) *RedisResponse

Hash operations

func (*MockRedisOp) HScan added in v1.2.0

func (m *MockRedisOp) HScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

func (*MockRedisOp) HSet added in v1.2.0

func (m *MockRedisOp) HSet(key, field, val interface{}) *RedisResponse

func (*MockRedisOp) HSetNX added in v1.2.3

func (m *MockRedisOp) HSetNX(key, field, val interface{}) *RedisResponse

func (*MockRedisOp) HVals added in v1.2.0

func (m *MockRedisOp) HVals(key interface{}) *RedisResponse

func (*MockRedisOp) IdleCount added in v1.2.0

func (m *MockRedisOp) IdleCount() int

func (*MockRedisOp) Incr added in v1.2.0

func (m *MockRedisOp) Incr(key interface{}) *RedisResponse

func (*MockRedisOp) IncrBy added in v1.2.0

func (m *MockRedisOp) IncrBy(key interface{}, val int64) *RedisResponse

func (*MockRedisOp) Keys added in v1.2.0

func (m *MockRedisOp) Keys(key interface{}) *RedisResponse

func (*MockRedisOp) LIndex added in v1.2.0

func (m *MockRedisOp) LIndex(key interface{}, index int64) *RedisResponse

List operations

func (*MockRedisOp) LInsert added in v1.2.0

func (m *MockRedisOp) LInsert(key interface{}, where string, pivot, element interface{}) *RedisResponse

func (*MockRedisOp) LLen added in v1.2.0

func (m *MockRedisOp) LLen(key interface{}) *RedisResponse

func (*MockRedisOp) LMPop added in v1.2.0

func (m *MockRedisOp) LMPop(count int64, where string, key ...interface{}) *RedisResponse

func (*MockRedisOp) LMove added in v1.2.0

func (m *MockRedisOp) LMove(source, destination interface{}, srcWhere, dstWhere string) *RedisResponse

func (*MockRedisOp) LPop added in v1.2.0

func (m *MockRedisOp) LPop(key interface{}) *RedisResponse

func (*MockRedisOp) LPos added in v1.2.0

func (m *MockRedisOp) LPos(key, element interface{}) *RedisResponse

func (*MockRedisOp) LPush added in v1.2.0

func (m *MockRedisOp) LPush(key interface{}, val ...interface{}) *RedisResponse

func (*MockRedisOp) LPushX added in v1.2.0

func (m *MockRedisOp) LPushX(key interface{}, val ...interface{}) *RedisResponse

func (*MockRedisOp) LRange added in v1.2.0

func (m *MockRedisOp) LRange(key interface{}, start, stop int64) *RedisResponse

func (*MockRedisOp) LRem added in v1.2.0

func (m *MockRedisOp) LRem(key interface{}, count int64, element interface{}) *RedisResponse

func (*MockRedisOp) LSet added in v1.2.0

func (m *MockRedisOp) LSet(key interface{}, index int64, element interface{}) *RedisResponse

func (*MockRedisOp) LTrim added in v1.2.0

func (m *MockRedisOp) LTrim(key interface{}, start, stop int64) *RedisResponse

func (*MockRedisOp) MSetNX added in v1.2.3

func (m *MockRedisOp) MSetNX(keyvals ...interface{}) *RedisResponse

func (*MockRedisOp) Meta added in v1.2.0

func (m *MockRedisOp) Meta() secret.RedisMeta

Connection and pool management methods

func (*MockRedisOp) PTTL added in v1.2.0

func (m *MockRedisOp) PTTL(key interface{}) *RedisResponse

func (*MockRedisOp) Persist added in v1.2.0

func (m *MockRedisOp) Persist(key interface{}) *RedisResponse

func (*MockRedisOp) Ping added in v1.2.0

func (m *MockRedisOp) Ping() *RedisResponse

func (*MockRedisOp) Pipeline added in v1.2.0

func (m *MockRedisOp) Pipeline(cmds ...RedisPipelineCmd) []*RedisResponse

Pipeline operations

func (*MockRedisOp) Pool added in v1.2.0

func (m *MockRedisOp) Pool() *redis.Pool

func (*MockRedisOp) Publish added in v1.2.0

func (m *MockRedisOp) Publish(key interface{}, val interface{}) *RedisResponse

func (*MockRedisOp) RPop added in v1.2.0

func (m *MockRedisOp) RPop(key interface{}) *RedisResponse

func (*MockRedisOp) RPopLPush added in v1.2.0

func (m *MockRedisOp) RPopLPush(source, destination interface{}) *RedisResponse

func (*MockRedisOp) RPush added in v1.2.0

func (m *MockRedisOp) RPush(key interface{}, val ...interface{}) *RedisResponse

func (*MockRedisOp) RPushX added in v1.2.0

func (m *MockRedisOp) RPushX(key interface{}, val ...interface{}) *RedisResponse

func (*MockRedisOp) RandomKey added in v1.2.0

func (m *MockRedisOp) RandomKey() *RedisResponse

func (*MockRedisOp) Rename added in v1.2.0

func (m *MockRedisOp) Rename(oldKey, newKey interface{}) *RedisResponse

func (*MockRedisOp) RenameNX added in v1.2.0

func (m *MockRedisOp) RenameNX(oldKey, newKey interface{}) *RedisResponse

func (*MockRedisOp) Reset added in v1.2.0

func (m *MockRedisOp) Reset()

Reset clears all mock data including responses, history, and sequences.

func (*MockRedisOp) SAdd added in v1.2.0

func (m *MockRedisOp) SAdd(key interface{}, member ...interface{}) *RedisResponse

Set operations

func (*MockRedisOp) SCard added in v1.2.0

func (m *MockRedisOp) SCard(key interface{}) *RedisResponse

func (*MockRedisOp) SDiff added in v1.2.0

func (m *MockRedisOp) SDiff(key ...interface{}) *RedisResponse

func (*MockRedisOp) SDiffStore added in v1.2.0

func (m *MockRedisOp) SDiffStore(destination interface{}, key ...interface{}) *RedisResponse

func (*MockRedisOp) SInter added in v1.2.0

func (m *MockRedisOp) SInter(key ...interface{}) *RedisResponse

func (*MockRedisOp) SInterCard added in v1.2.0

func (m *MockRedisOp) SInterCard(key ...interface{}) *RedisResponse

func (*MockRedisOp) SInterStore added in v1.2.0

func (m *MockRedisOp) SInterStore(destination interface{}, key ...interface{}) *RedisResponse

func (*MockRedisOp) SIsMember added in v1.2.0

func (m *MockRedisOp) SIsMember(key, member interface{}) *RedisResponse

func (*MockRedisOp) SMIsMember added in v1.2.0

func (m *MockRedisOp) SMIsMember(key interface{}, member ...interface{}) *RedisResponse

func (*MockRedisOp) SMembers added in v1.2.0

func (m *MockRedisOp) SMembers(key interface{}) *RedisResponse

func (*MockRedisOp) SMove added in v1.2.0

func (m *MockRedisOp) SMove(source, destination, member interface{}) *RedisResponse

func (*MockRedisOp) SPop added in v1.2.0

func (m *MockRedisOp) SPop(key interface{}) *RedisResponse

func (*MockRedisOp) SRandMember added in v1.2.0

func (m *MockRedisOp) SRandMember(key interface{}) *RedisResponse

func (*MockRedisOp) SRem added in v1.2.0

func (m *MockRedisOp) SRem(key interface{}, member ...interface{}) *RedisResponse

func (*MockRedisOp) SScan added in v1.2.0

func (m *MockRedisOp) SScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

func (*MockRedisOp) SUnion added in v1.2.0

func (m *MockRedisOp) SUnion(key ...interface{}) *RedisResponse

func (*MockRedisOp) SUnionStore added in v1.2.0

func (m *MockRedisOp) SUnionStore(destination interface{}, key ...interface{}) *RedisResponse

func (*MockRedisOp) Scan added in v1.2.0

func (m *MockRedisOp) Scan(cursor int64, match string, count int64) *RedisResponse

func (*MockRedisOp) Set added in v1.2.0

func (m *MockRedisOp) Set(key interface{}, val interface{}) *RedisResponse

func (*MockRedisOp) SetActiveCount added in v1.2.0

func (m *MockRedisOp) SetActiveCount(count int)

SetActiveCount sets the simulated active connection count.

func (*MockRedisOp) SetConditionalResponse added in v1.2.0

func (m *MockRedisOp) SetConditionalResponse(cmd string, condition MockConditionFunc, response MockResponse)

SetConditionalResponse adds a conditional response rule.

func (*MockRedisOp) SetDefaultError added in v1.2.0

func (m *MockRedisOp) SetDefaultError(err error)

SetDefaultError sets a default error returned when no specific response is configured.

func (*MockRedisOp) SetExpire added in v1.2.0

func (m *MockRedisOp) SetExpire(key interface{}, val interface{}, ttl int64) *RedisResponse

func (*MockRedisOp) SetIdleCount added in v1.2.0

func (m *MockRedisOp) SetIdleCount(count int)

SetIdleCount sets the simulated idle connection count.

func (*MockRedisOp) SetMeta added in v1.2.0

func (m *MockRedisOp) SetMeta(meta secret.RedisMeta)

SetMeta sets the simulated Redis connection metadata.

func (*MockRedisOp) SetNX added in v1.2.3

func (m *MockRedisOp) SetNX(key interface{}, val interface{}) *RedisResponse

func (*MockRedisOp) SetRange added in v1.2.0

func (m *MockRedisOp) SetRange(key interface{}, offset int64, val interface{}) *RedisResponse

func (*MockRedisOp) SetResponse added in v1.2.0

func (m *MockRedisOp) SetResponse(cmd string, keyPattern string, data interface{}, err error)

SetResponse sets a static response for a specific command and key pattern. Pattern supports "*" as wildcard for any key.

func (*MockRedisOp) SetSequentialResponses added in v1.2.0

func (m *MockRedisOp) SetSequentialResponses(cmd string, keyPattern string, responses []MockResponse)

SetSequentialResponses sets a sequence of responses for a command and key pattern. Each call will return the next response in sequence, cycling back to start when exhausted.

func (*MockRedisOp) SetWithOptions added in v1.2.3

func (m *MockRedisOp) SetWithOptions(key interface{}, val interface{}, opts SetOptions) *RedisResponse

func (*MockRedisOp) StrLen added in v1.2.0

func (m *MockRedisOp) StrLen(key interface{}) *RedisResponse

func (*MockRedisOp) TTL added in v1.2.0

func (m *MockRedisOp) TTL(key interface{}) *RedisResponse

func (*MockRedisOp) Touch added in v1.2.0

func (m *MockRedisOp) Touch(key ...interface{}) *RedisResponse

func (*MockRedisOp) Type added in v1.2.0

func (m *MockRedisOp) Type(key interface{}) *RedisResponse
func (m *MockRedisOp) Unlink(key ...interface{}) *RedisResponse

func (*MockRedisOp) ZAdd added in v1.2.0

func (m *MockRedisOp) ZAdd(key interface{}, score float64, member interface{}, pairs ...interface{}) *RedisResponse

Sorted Set operations

func (*MockRedisOp) ZCard added in v1.2.0

func (m *MockRedisOp) ZCard(key interface{}) *RedisResponse

func (*MockRedisOp) ZCount added in v1.2.0

func (m *MockRedisOp) ZCount(key interface{}, min, max string) *RedisResponse

func (*MockRedisOp) ZDiff added in v1.2.0

func (m *MockRedisOp) ZDiff(key ...interface{}) *RedisResponse

func (*MockRedisOp) ZDiffStore added in v1.2.0

func (m *MockRedisOp) ZDiffStore(destination interface{}, key ...interface{}) *RedisResponse

func (*MockRedisOp) ZIncrBy added in v1.2.0

func (m *MockRedisOp) ZIncrBy(key interface{}, increment float64, member interface{}) *RedisResponse

func (*MockRedisOp) ZInter added in v1.2.0

func (m *MockRedisOp) ZInter(key ...interface{}) *RedisResponse

func (*MockRedisOp) ZInterCard added in v1.2.0

func (m *MockRedisOp) ZInterCard(key ...interface{}) *RedisResponse

func (*MockRedisOp) ZInterStore added in v1.2.0

func (m *MockRedisOp) ZInterStore(destination interface{}, key ...interface{}) *RedisResponse

func (*MockRedisOp) ZLexCount added in v1.2.0

func (m *MockRedisOp) ZLexCount(key interface{}, min, max string) *RedisResponse

func (*MockRedisOp) ZMPop added in v1.2.0

func (m *MockRedisOp) ZMPop(count int64, where string, key ...interface{}) *RedisResponse

func (*MockRedisOp) ZMScore added in v1.2.0

func (m *MockRedisOp) ZMScore(key interface{}, member ...interface{}) *RedisResponse

func (*MockRedisOp) ZPopMax added in v1.2.0

func (m *MockRedisOp) ZPopMax(key interface{}) *RedisResponse

func (*MockRedisOp) ZPopMin added in v1.2.0

func (m *MockRedisOp) ZPopMin(key interface{}) *RedisResponse

func (*MockRedisOp) ZRandMember added in v1.2.0

func (m *MockRedisOp) ZRandMember(key interface{}) *RedisResponse

func (*MockRedisOp) ZRange added in v1.2.0

func (m *MockRedisOp) ZRange(key interface{}, start, stop int64) *RedisResponse

func (*MockRedisOp) ZRangeByLex added in v1.2.0

func (m *MockRedisOp) ZRangeByLex(key interface{}, min, max string) *RedisResponse

func (*MockRedisOp) ZRangeByScore added in v1.2.0

func (m *MockRedisOp) ZRangeByScore(key interface{}, min, max string) *RedisResponse

func (*MockRedisOp) ZRangeStore added in v1.2.0

func (m *MockRedisOp) ZRangeStore(dst interface{}, src interface{}, min, max int64) *RedisResponse

func (*MockRedisOp) ZRank added in v1.2.0

func (m *MockRedisOp) ZRank(key, member interface{}) *RedisResponse

func (*MockRedisOp) ZRem added in v1.2.0

func (m *MockRedisOp) ZRem(key interface{}, member ...interface{}) *RedisResponse

func (*MockRedisOp) ZRemRangeByLex added in v1.2.0

func (m *MockRedisOp) ZRemRangeByLex(key interface{}, min, max string) *RedisResponse

func (*MockRedisOp) ZRemRangeByRank added in v1.2.0

func (m *MockRedisOp) ZRemRangeByRank(key interface{}, start, stop int64) *RedisResponse

func (*MockRedisOp) ZRemRangeByScore added in v1.2.0

func (m *MockRedisOp) ZRemRangeByScore(key interface{}, min, max string) *RedisResponse

func (*MockRedisOp) ZRevRange added in v1.2.0

func (m *MockRedisOp) ZRevRange(key interface{}, start, stop int64) *RedisResponse

func (*MockRedisOp) ZRevRangeByLex added in v1.2.0

func (m *MockRedisOp) ZRevRangeByLex(key interface{}, max, min string) *RedisResponse

func (*MockRedisOp) ZRevRangeByScore added in v1.2.0

func (m *MockRedisOp) ZRevRangeByScore(key interface{}, max, min string) *RedisResponse

func (*MockRedisOp) ZRevRank added in v1.2.0

func (m *MockRedisOp) ZRevRank(key, member interface{}) *RedisResponse

func (*MockRedisOp) ZScan added in v1.2.0

func (m *MockRedisOp) ZScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

func (*MockRedisOp) ZScore added in v1.2.0

func (m *MockRedisOp) ZScore(key, member interface{}) *RedisResponse

func (*MockRedisOp) ZUnion added in v1.2.0

func (m *MockRedisOp) ZUnion(key ...interface{}) *RedisResponse

func (*MockRedisOp) ZUnionStore added in v1.2.0

func (m *MockRedisOp) ZUnionStore(destination interface{}, key ...interface{}) *RedisResponse

type MockResponse added in v1.2.0

type MockResponse struct {
	Data  interface{}
	Error error
	Delay time.Duration // Optional: simulate network delay
}

MockResponse contains the response data and optional error for mock operations.

type MysqlParams

type MysqlParams struct {
	DriverName                    string
	ServerVersion                 string
	SkipInitializeWithVersion     bool
	DefaultStringSize             uint
	DefaultDatetimePrecision      *int
	DisableWithReturning          bool
	DisableDatetimePrecision      bool
	DontSupportRenameIndex        bool
	DontSupportRenameColumn       bool
	DontSupportForShareClause     bool
	DontSupportNullAsDefaultValue bool
	DontSupportRenameColumnUnique bool
	DontSupportDropConstraint     bool
}

type Redis

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

Redis provides convenient accessors to master and slave Redis operations using a connection pool. It is constructed via NewRedis and exposes Master() and Slave() for executing commands. This type holds no business logic; it wires secret-loaded endpoints to pools.

func NewMockRedis added in v1.2.0

func NewMockRedis() *Redis

NewMockRedis creates a Redis instance with mock operators for testing. This allows full testing of Redis operations without requiring a real Redis server.

func NewRedis

func NewRedis(profileName string) *Redis

NewRedis constructs a Redis client by loading the secret profile with the given name. The secret must contain master/slave endpoints defined by RedisMeta (host and port only).

func NewRedisWithMock added in v1.2.0

func NewRedisWithMock(master, slave *MockRedisOp) *Redis

NewRedisWithMock creates a Redis instance with custom mock operators. This allows fine-grained control over mock behavior for advanced testing scenarios.

func (*Redis) Master

func (r *Redis) Master() RedisOperator

Master returns the master RedisOperator for primary/write operations.

func (*Redis) Slave

func (r *Redis) Slave() RedisOperator

Slave returns the slave RedisOperator for read operations.

type RedisOp

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

RedisOp wraps a redis.Pool and exposes typed Redis command helpers. Obtain instances via Redis.Master() and Redis.Slave(). Each method executes a single Redis command and returns a RedisResponse.

func (*RedisOp) ActiveCount

func (o *RedisOp) ActiveCount() int

ActiveCount returns the number of active connections in the pool.

func (*RedisOp) Append added in v1.1.13

func (o *RedisOp) Append(key interface{}, val interface{}) *RedisResponse

String commands (supplementary) Append appends a value to a key's string value.

func (*RedisOp) Close

func (o *RedisOp) Close() error

Close closes the underlying connection pool if present. This is not a Redis command; it releases local resources. Safe to call multiple times.

func (*RedisOp) Conn

func (o *RedisOp) Conn() redis.Conn

Conn returns a raw redis.Conn from the pool. Caller must Close() when done.

func (*RedisOp) Copy added in v1.1.13

func (o *RedisOp) Copy(src, dst interface{}) *RedisResponse

Key commands (supplementary) Copy copies the value stored at the source key to the destination key.

func (*RedisOp) Decr added in v1.1.13

func (o *RedisOp) Decr(key interface{}) *RedisResponse

Decr decrements the integer value of a key by one.

func (*RedisOp) DecrBy added in v1.1.13

func (o *RedisOp) DecrBy(key interface{}, val int64) *RedisResponse

DecrBy decrements the integer value of a key by the given number.

func (*RedisOp) Delete

func (o *RedisOp) Delete(key ...interface{}) *RedisResponse

Delete removes one or more keys.

func (*RedisOp) Dump added in v1.1.13

func (o *RedisOp) Dump(key interface{}) *RedisResponse

Dump serializes the value stored at key in a Redis-specific format.

func (*RedisOp) Eval added in v1.1.15

func (o *RedisOp) Eval(script string, keys []interface{}, args []interface{}) *RedisResponse

Script commands Eval executes a Lua script on the server.

func (*RedisOp) Exec

func (o *RedisOp) Exec(f func(conn redis.Conn)) error

Exec obtains a connection from the pool and executes the given function.

func (*RedisOp) Exists

func (o *RedisOp) Exists(key ...interface{}) *RedisResponse

Exists checks if one or more keys exist.

func (*RedisOp) Expire

func (o *RedisOp) Expire(key interface{}, ttl int64) *RedisResponse

Expire sets a timeout on key. After the TTL expires, the key is deleted.

func (*RedisOp) FlushAll added in v1.1.13

func (o *RedisOp) FlushAll() *RedisResponse

FlushAll removes all keys from all databases.

func (*RedisOp) FlushDB added in v1.1.13

func (o *RedisOp) FlushDB() *RedisResponse

FlushDB removes all keys from the current database.

func (*RedisOp) Get

func (o *RedisOp) Get(key interface{}) *RedisResponse

Get retrieves the string value of a key.

func (*RedisOp) GetRange added in v1.1.13

func (o *RedisOp) GetRange(key interface{}, start, end int64) *RedisResponse

GetRange gets a substring of the string stored at key.

func (*RedisOp) HDel

func (o *RedisOp) HDel(key interface{}, field ...interface{}) *RedisResponse

HDel deletes one or more hash fields.

func (*RedisOp) HExists

func (o *RedisOp) HExists(key, field interface{}) *RedisResponse

HExists determines if a hash field exists.

func (*RedisOp) HGet

func (o *RedisOp) HGet(key, field interface{}) *RedisResponse

HGet gets the value of a field in a hash.

func (*RedisOp) HGetAll

func (o *RedisOp) HGetAll(key interface{}) *RedisResponse

HGetAll gets all fields and values in a hash.

func (*RedisOp) HIncrBy

func (o *RedisOp) HIncrBy(key interface{}, field interface{}, val int64) *RedisResponse

HIncrBy increments the integer value of a hash field by the given number.

func (*RedisOp) HKeys

func (o *RedisOp) HKeys(key interface{}) *RedisResponse

HKeys returns all field names in a hash.

func (*RedisOp) HLen

func (o *RedisOp) HLen(key interface{}) *RedisResponse

HLen returns the number of fields contained in the hash.

func (*RedisOp) HMGet

func (o *RedisOp) HMGet(key interface{}, field ...interface{}) *RedisResponse

HMGet gets the values of all specified fields in a hash.

func (*RedisOp) HMSet

func (o *RedisOp) HMSet(key interface{}, val map[interface{}]interface{}) *RedisResponse

HMSet sets multiple hash fields to multiple values.

func (*RedisOp) HScan added in v1.1.13

func (o *RedisOp) HScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

HScan iterates over hash fields and values using a cursor.

func (*RedisOp) HSet

func (o *RedisOp) HSet(key, field, val interface{}) *RedisResponse

HSet sets field in the hash stored at key to value.

func (*RedisOp) HSetNX added in v1.2.3

func (o *RedisOp) HSetNX(key, field, val interface{}) *RedisResponse

HSetNX sets field in the hash stored at key to value, only if field does not exist.

func (*RedisOp) HVals

func (o *RedisOp) HVals(key interface{}) *RedisResponse

HVals returns all values in a hash.

func (*RedisOp) IdleCount

func (o *RedisOp) IdleCount() int

IdleCount returns the number of idle connections in the pool.

func (*RedisOp) Incr

func (o *RedisOp) Incr(key interface{}) *RedisResponse

Incr increments the integer value of a key by one.

func (*RedisOp) IncrBy

func (o *RedisOp) IncrBy(key interface{}, val int64) *RedisResponse

IncrBy increments the integer value of a key by the given amount.

func (*RedisOp) Keys

func (o *RedisOp) Keys(key interface{}) *RedisResponse

Keys returns all keys matching the given pattern.

func (*RedisOp) LIndex added in v1.1.13

func (o *RedisOp) LIndex(key interface{}, index int64) *RedisResponse

List commands LIndex returns the element at index in the list stored at key.

func (*RedisOp) LInsert added in v1.1.13

func (o *RedisOp) LInsert(key interface{}, where string, pivot, element interface{}) *RedisResponse

LInsert inserts element before or after the pivot element in the list stored at key.

func (*RedisOp) LLen added in v1.1.13

func (o *RedisOp) LLen(key interface{}) *RedisResponse

LLen returns the length of the list stored at key.

func (*RedisOp) LMPop added in v1.1.13

func (o *RedisOp) LMPop(count int64, where string, key ...interface{}) *RedisResponse

LMPop pops one or multiple elements from the first non-empty list key among the given keys.

func (*RedisOp) LMove added in v1.1.13

func (o *RedisOp) LMove(source, destination interface{}, srcWhere, dstWhere string) *RedisResponse

LMove atomically returns and removes the element from the source list and pushes it to the destination list.

func (*RedisOp) LPop added in v1.1.13

func (o *RedisOp) LPop(key interface{}) *RedisResponse

LPop removes and returns the first element of the list stored at key.

func (*RedisOp) LPos added in v1.1.13

func (o *RedisOp) LPos(key, element interface{}) *RedisResponse

LPos returns the index of the first occurrence of element in the list stored at key.

func (*RedisOp) LPush added in v1.1.13

func (o *RedisOp) LPush(key interface{}, val ...interface{}) *RedisResponse

LPush inserts all the specified values at the head of the list stored at key.

func (*RedisOp) LPushX added in v1.1.13

func (o *RedisOp) LPushX(key interface{}, val ...interface{}) *RedisResponse

LPushX inserts values at the head of the list stored at key, only if the list exists.

func (*RedisOp) LRange added in v1.1.13

func (o *RedisOp) LRange(key interface{}, start, stop int64) *RedisResponse

LRange returns the specified elements of the list stored at key.

func (*RedisOp) LRem added in v1.1.13

func (o *RedisOp) LRem(key interface{}, count int64, element interface{}) *RedisResponse

LRem removes the first count occurrences of element from the list stored at key.

func (*RedisOp) LSet added in v1.1.13

func (o *RedisOp) LSet(key interface{}, index int64, element interface{}) *RedisResponse

LSet sets the list element at index to element.

func (*RedisOp) LTrim added in v1.1.13

func (o *RedisOp) LTrim(key interface{}, start, stop int64) *RedisResponse

LTrim trims an existing list so that it will contain only the specified range of elements.

func (*RedisOp) MSetNX added in v1.2.3

func (o *RedisOp) MSetNX(keyvals ...interface{}) *RedisResponse

MSetNX sets multiple keys to multiple values, only if none of the keys exist.

func (*RedisOp) Meta added in v1.1.12

func (o *RedisOp) Meta() secret.RedisMeta

Meta returns the Redis connection metadata (host and port) loaded from secret.

func (*RedisOp) PTTL added in v1.1.13

func (o *RedisOp) PTTL(key interface{}) *RedisResponse

PTTL returns the remaining time to live of a key in milliseconds.

func (*RedisOp) Persist added in v1.1.13

func (o *RedisOp) Persist(key interface{}) *RedisResponse

Persist removes the existing timeout on a key.

func (*RedisOp) Ping added in v1.1.2

func (o *RedisOp) Ping() *RedisResponse

Ping checks if the server is alive and responding.

func (*RedisOp) Pipeline added in v1.1.14

func (o *RedisOp) Pipeline(cmds ...RedisPipelineCmd) []*RedisResponse

Usage guarantees 1:1 mapping between cmds[i] and responses[i]. Pipeline sends multiple commands in a single batch and returns responses in the same order.

func (*RedisOp) Pool

func (o *RedisOp) Pool() *redis.Pool

Pool returns the underlying redis.Pool used by this RedisOp.

func (*RedisOp) Publish

func (o *RedisOp) Publish(key interface{}, val interface{}) *RedisResponse

Publish posts a message to the given channel.

func (*RedisOp) RPop added in v1.1.13

func (o *RedisOp) RPop(key interface{}) *RedisResponse

RPop removes and returns the last element of the list stored at key.

func (*RedisOp) RPopLPush added in v1.1.13

func (o *RedisOp) RPopLPush(source, destination interface{}) *RedisResponse

RPopLPush removes the last element in the source list and pushes it to the head of the destination list.

func (*RedisOp) RPush added in v1.1.13

func (o *RedisOp) RPush(key interface{}, val ...interface{}) *RedisResponse

RPush inserts all the specified values at the tail of the list stored at key.

func (*RedisOp) RPushX added in v1.1.13

func (o *RedisOp) RPushX(key interface{}, val ...interface{}) *RedisResponse

RPushX inserts values at the tail of the list stored at key, only if the list exists.

func (*RedisOp) RandomKey added in v1.1.13

func (o *RedisOp) RandomKey() *RedisResponse

RandomKey returns a random key from the current database.

func (*RedisOp) Rename added in v1.1.13

func (o *RedisOp) Rename(oldKey, newKey interface{}) *RedisResponse

Rename renames a key.

func (*RedisOp) RenameNX added in v1.1.13

func (o *RedisOp) RenameNX(oldKey, newKey interface{}) *RedisResponse

RenameNX renames a key, only if the new key does not exist.

func (*RedisOp) SAdd added in v1.1.13

func (o *RedisOp) SAdd(key interface{}, member ...interface{}) *RedisResponse

Set commands SAdd adds one or more members to a set.

func (*RedisOp) SCard added in v1.1.13

func (o *RedisOp) SCard(key interface{}) *RedisResponse

SCard returns the set cardinality (number of elements) of the set stored at key.

func (*RedisOp) SDiff added in v1.1.13

func (o *RedisOp) SDiff(key ...interface{}) *RedisResponse

SDiff returns the members of the set resulting from the difference between the first set and all the successive sets.

func (*RedisOp) SDiffStore added in v1.1.13

func (o *RedisOp) SDiffStore(destination interface{}, key ...interface{}) *RedisResponse

SDiffStore stores the result of SDIFF in the destination key.

func (*RedisOp) SInter added in v1.1.13

func (o *RedisOp) SInter(key ...interface{}) *RedisResponse

SInter returns the members of the set resulting from the intersection of all the given sets.

func (*RedisOp) SInterCard added in v1.1.13

func (o *RedisOp) SInterCard(key ...interface{}) *RedisResponse

SInterCard returns the number of elements in the intersection of all the given sets.

func (*RedisOp) SInterStore added in v1.1.13

func (o *RedisOp) SInterStore(destination interface{}, key ...interface{}) *RedisResponse

SInterStore stores the result of SINTER in the destination key.

func (*RedisOp) SIsMember added in v1.1.13

func (o *RedisOp) SIsMember(key, member interface{}) *RedisResponse

SIsMember returns if member is a member of the set stored at key.

func (*RedisOp) SMIsMember added in v1.1.13

func (o *RedisOp) SMIsMember(key interface{}, member ...interface{}) *RedisResponse

SMIsMember returns whether each member is a member of the set stored at key.

func (*RedisOp) SMembers added in v1.1.13

func (o *RedisOp) SMembers(key interface{}) *RedisResponse

SMembers returns all the members of the set value stored at key.

func (*RedisOp) SMove added in v1.1.13

func (o *RedisOp) SMove(source, destination, member interface{}) *RedisResponse

SMove moves member from the source set to the destination set.

func (*RedisOp) SPop added in v1.1.13

func (o *RedisOp) SPop(key interface{}) *RedisResponse

SPop removes and returns one or more random members from the set stored at key.

func (*RedisOp) SRandMember added in v1.1.13

func (o *RedisOp) SRandMember(key interface{}) *RedisResponse

SRandMember returns one or more random members from the set value stored at key without removing them.

func (*RedisOp) SRem added in v1.1.13

func (o *RedisOp) SRem(key interface{}, member ...interface{}) *RedisResponse

SRem removes one or more members from a set.

func (*RedisOp) SScan added in v1.1.13

func (o *RedisOp) SScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

SScan iterates elements of the set stored at key.

func (*RedisOp) SUnion added in v1.1.13

func (o *RedisOp) SUnion(key ...interface{}) *RedisResponse

SUnion returns the members of the set resulting from the union of all the given sets.

func (*RedisOp) SUnionStore added in v1.1.13

func (o *RedisOp) SUnionStore(destination interface{}, key ...interface{}) *RedisResponse

SUnionStore stores the result of SUNION in the destination key.

func (*RedisOp) Scan added in v1.1.13

func (o *RedisOp) Scan(cursor int64, match string, count int64) *RedisResponse

Scan iterates the set of keys in the current database.

func (*RedisOp) Set

func (o *RedisOp) Set(key interface{}, val interface{}) *RedisResponse

Set sets the string value of a key.

func (*RedisOp) SetExpire

func (o *RedisOp) SetExpire(key interface{}, val interface{}, ttl int64) *RedisResponse

SetExpire sets value and expiration in one command.

func (*RedisOp) SetNX added in v1.2.3

func (o *RedisOp) SetNX(key interface{}, val interface{}) *RedisResponse

SetNX sets the value of a key, only if the key does not exist.

func (*RedisOp) SetRange added in v1.1.13

func (o *RedisOp) SetRange(key interface{}, offset int64, val interface{}) *RedisResponse

SetRange overwrites part of the string stored at key starting at the specified offset.

func (*RedisOp) SetWithOptions added in v1.2.3

func (o *RedisOp) SetWithOptions(key interface{}, val interface{}, opts SetOptions) *RedisResponse

SetWithOptions sets the string value of a key with additional options.

func (*RedisOp) StrLen added in v1.1.13

func (o *RedisOp) StrLen(key interface{}) *RedisResponse

StrLen returns the length of the string value stored at key.

func (*RedisOp) TTL added in v1.1.13

func (o *RedisOp) TTL(key interface{}) *RedisResponse

TTL returns the remaining time to live of a key in seconds.

func (*RedisOp) Touch added in v1.1.13

func (o *RedisOp) Touch(key ...interface{}) *RedisResponse

Touch updates the last access time of one or more keys.

func (*RedisOp) Type added in v1.1.13

func (o *RedisOp) Type(key interface{}) *RedisResponse

Type returns the string representation of the key's data type.

func (o *RedisOp) Unlink(key ...interface{}) *RedisResponse

Unlink removes one or more keys asynchronously.

func (*RedisOp) ZAdd added in v1.1.13

func (o *RedisOp) ZAdd(key interface{}, score float64, member interface{}, pairs ...interface{}) *RedisResponse

Sorted Set commands ZAdd adds all the specified members with the specified scores to the sorted set stored at key.

func (*RedisOp) ZCard added in v1.1.13

func (o *RedisOp) ZCard(key interface{}) *RedisResponse

ZCard returns the sorted set cardinality (number of elements) of the sorted set stored at key.

func (*RedisOp) ZCount added in v1.1.13

func (o *RedisOp) ZCount(key interface{}, min, max string) *RedisResponse

ZCount returns the number of elements in the sorted set with a score between min and max.

func (*RedisOp) ZDiff added in v1.1.13

func (o *RedisOp) ZDiff(key ...interface{}) *RedisResponse

ZDiff returns the members of the sorted set resulting from the difference between the first set and all the successive sets.

func (*RedisOp) ZDiffStore added in v1.1.13

func (o *RedisOp) ZDiffStore(destination interface{}, key ...interface{}) *RedisResponse

ZDiffStore stores the result of ZDIFF in the destination key.

func (*RedisOp) ZIncrBy added in v1.1.13

func (o *RedisOp) ZIncrBy(key interface{}, increment float64, member interface{}) *RedisResponse

ZIncrBy increments the score of member in the sorted set stored at key by increment.

func (*RedisOp) ZInter added in v1.1.13

func (o *RedisOp) ZInter(key ...interface{}) *RedisResponse

ZInter returns the members of the sorted set resulting from the intersection of all the given sets.

func (*RedisOp) ZInterCard added in v1.1.13

func (o *RedisOp) ZInterCard(key ...interface{}) *RedisResponse

ZInterCard returns the number of elements in the intersection of all the given sorted sets.

func (*RedisOp) ZInterStore added in v1.1.13

func (o *RedisOp) ZInterStore(destination interface{}, key ...interface{}) *RedisResponse

ZInterStore stores the result of ZINTER in the destination key.

func (*RedisOp) ZLexCount added in v1.1.13

func (o *RedisOp) ZLexCount(key interface{}, min, max string) *RedisResponse

ZLexCount returns the number of elements in the sorted set with a value between min and max, lexicographically.

func (*RedisOp) ZMPop added in v1.1.13

func (o *RedisOp) ZMPop(count int64, where string, key ...interface{}) *RedisResponse

ZMPop pops one or more elements from the first non-empty sorted set among the given keys.

func (*RedisOp) ZMScore added in v1.1.13

func (o *RedisOp) ZMScore(key interface{}, member ...interface{}) *RedisResponse

ZMScore returns the scores associated with the specified members in the sorted set stored at key.

func (*RedisOp) ZPopMax added in v1.1.13

func (o *RedisOp) ZPopMax(key interface{}) *RedisResponse

ZPopMax removes and returns the member with the highest score from the sorted set.

func (*RedisOp) ZPopMin added in v1.1.13

func (o *RedisOp) ZPopMin(key interface{}) *RedisResponse

ZPopMin removes and returns the member with the lowest score from the sorted set.

func (*RedisOp) ZRandMember added in v1.1.13

func (o *RedisOp) ZRandMember(key interface{}) *RedisResponse

ZRandMember returns a random member from the sorted set without removing it.

func (*RedisOp) ZRange added in v1.1.13

func (o *RedisOp) ZRange(key interface{}, start, stop int64) *RedisResponse

ZRange returns the specified range of members in the sorted set stored at key by index.

func (*RedisOp) ZRangeByLex added in v1.1.13

func (o *RedisOp) ZRangeByLex(key interface{}, min, max string) *RedisResponse

ZRangeByLex returns all the elements in the sorted set with a value between min and max, lexicographically.

func (*RedisOp) ZRangeByScore added in v1.1.13

func (o *RedisOp) ZRangeByScore(key interface{}, min, max string) *RedisResponse

ZRangeByScore returns all the elements in the sorted set with a score between min and max.

func (*RedisOp) ZRangeStore added in v1.1.13

func (o *RedisOp) ZRangeStore(dst interface{}, src interface{}, min, max int64) *RedisResponse

ZRangeStore stores a range of members selected by index from the source sorted set to the destination key.

func (*RedisOp) ZRank added in v1.1.13

func (o *RedisOp) ZRank(key, member interface{}) *RedisResponse

ZRank returns the rank of member in the sorted set stored at key, with scores ordered from low to high.

func (*RedisOp) ZRem added in v1.1.13

func (o *RedisOp) ZRem(key interface{}, member ...interface{}) *RedisResponse

ZRem removes one or more members from the sorted set stored at key.

func (*RedisOp) ZRemRangeByLex added in v1.1.13

func (o *RedisOp) ZRemRangeByLex(key interface{}, min, max string) *RedisResponse

ZRemRangeByLex removes all members in the sorted set between the lexicographical range specified by min and max.

func (*RedisOp) ZRemRangeByRank added in v1.1.13

func (o *RedisOp) ZRemRangeByRank(key interface{}, start, stop int64) *RedisResponse

ZRemRangeByRank removes all members in the sorted set stored at key within the given index range.

func (*RedisOp) ZRemRangeByScore added in v1.1.13

func (o *RedisOp) ZRemRangeByScore(key interface{}, min, max string) *RedisResponse

ZRemRangeByScore removes all members in the sorted set stored at key with scores between min and max.

func (*RedisOp) ZRevRange added in v1.1.13

func (o *RedisOp) ZRevRange(key interface{}, start, stop int64) *RedisResponse

ZRevRange returns the specified range of members in the sorted set stored at key by index, with scores ordered from high to low.

func (*RedisOp) ZRevRangeByLex added in v1.1.13

func (o *RedisOp) ZRevRangeByLex(key interface{}, max, min string) *RedisResponse

ZRevRangeByLex returns all the elements in the sorted set with a value between max and min, lexicographically, in reverse order.

func (*RedisOp) ZRevRangeByScore added in v1.1.13

func (o *RedisOp) ZRevRangeByScore(key interface{}, max, min string) *RedisResponse

ZRevRangeByScore returns all the elements in the sorted set with a score between max and min in reverse order.

func (*RedisOp) ZRevRank added in v1.1.13

func (o *RedisOp) ZRevRank(key, member interface{}) *RedisResponse

ZRevRank returns the rank of member in the sorted set, with scores ordered from high to low.

func (*RedisOp) ZScan added in v1.1.13

func (o *RedisOp) ZScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

ZScan incrementally iterates members of the sorted set stored at key.

func (*RedisOp) ZScore added in v1.1.13

func (o *RedisOp) ZScore(key, member interface{}) *RedisResponse

ZScore returns the score associated with the specified member in the sorted set.

func (*RedisOp) ZUnion added in v1.1.13

func (o *RedisOp) ZUnion(key ...interface{}) *RedisResponse

ZUnion returns the members of the sorted set resulting from the union of all the given sorted sets.

func (*RedisOp) ZUnionStore added in v1.1.13

func (o *RedisOp) ZUnionStore(destination interface{}, key ...interface{}) *RedisResponse

type RedisOperator added in v1.2.0

type RedisOperator interface {
	// Connection and pool management
	Meta() secret.RedisMeta
	Pool() *redis.Pool
	Conn() redis.Conn
	ActiveCount() int
	IdleCount() int
	Close() error
	Exec(f func(conn redis.Conn)) error

	// Pipeline operations
	Pipeline(cmds ...RedisPipelineCmd) []*RedisResponse

	// String operations
	Get(key interface{}) *RedisResponse
	Set(key interface{}, val interface{}) *RedisResponse
	SetWithOptions(key interface{}, val interface{}, opts SetOptions) *RedisResponse
	SetExpire(key interface{}, val interface{}, ttl int64) *RedisResponse
	SetNX(key interface{}, val interface{}) *RedisResponse
	MSetNX(keyvals ...interface{}) *RedisResponse
	Incr(key interface{}) *RedisResponse
	IncrBy(key interface{}, val int64) *RedisResponse
	Decr(key interface{}) *RedisResponse
	DecrBy(key interface{}, val int64) *RedisResponse
	Append(key interface{}, val interface{}) *RedisResponse
	StrLen(key interface{}) *RedisResponse
	GetRange(key interface{}, start, end int64) *RedisResponse
	SetRange(key interface{}, offset int64, val interface{}) *RedisResponse

	// Hash operations
	HMSet(key interface{}, val map[interface{}]interface{}) *RedisResponse
	HMGet(key interface{}, field ...interface{}) *RedisResponse
	HSet(key, field, val interface{}) *RedisResponse
	HSetNX(key, field, val interface{}) *RedisResponse
	HGet(key, field interface{}) *RedisResponse
	HExists(key, field interface{}) *RedisResponse
	HDel(key interface{}, field ...interface{}) *RedisResponse
	HGetAll(key interface{}) *RedisResponse
	HLen(key interface{}) *RedisResponse
	HKeys(key interface{}) *RedisResponse
	HIncrBy(key interface{}, field interface{}, val int64) *RedisResponse
	HVals(key interface{}) *RedisResponse
	HScan(key interface{}, cursor int64, match string, count int64) *RedisResponse

	// Key operations
	Expire(key interface{}, ttl int64) *RedisResponse
	Delete(key ...interface{}) *RedisResponse
	Keys(key interface{}) *RedisResponse
	Exists(key ...interface{}) *RedisResponse
	Copy(src, dst interface{}) *RedisResponse
	Dump(key interface{}) *RedisResponse
	TTL(key interface{}) *RedisResponse
	PTTL(key interface{}) *RedisResponse
	Type(key interface{}) *RedisResponse
	RandomKey() *RedisResponse
	Rename(oldKey, newKey interface{}) *RedisResponse
	RenameNX(oldKey, newKey interface{}) *RedisResponse
	Touch(key ...interface{}) *RedisResponse
	Unlink(key ...interface{}) *RedisResponse
	Persist(key interface{}) *RedisResponse

	// List operations
	LIndex(key interface{}, index int64) *RedisResponse
	LInsert(key interface{}, where string, pivot, element interface{}) *RedisResponse
	LLen(key interface{}) *RedisResponse
	LMove(source, destination interface{}, srcWhere, dstWhere string) *RedisResponse
	LMPop(count int64, where string, key ...interface{}) *RedisResponse
	LPop(key interface{}) *RedisResponse
	LPos(key, element interface{}) *RedisResponse
	LPush(key interface{}, val ...interface{}) *RedisResponse
	LPushX(key interface{}, val ...interface{}) *RedisResponse
	LRange(key interface{}, start, stop int64) *RedisResponse
	LRem(key interface{}, count int64, element interface{}) *RedisResponse
	LSet(key interface{}, index int64, element interface{}) *RedisResponse
	LTrim(key interface{}, start, stop int64) *RedisResponse
	RPop(key interface{}) *RedisResponse
	RPopLPush(source, destination interface{}) *RedisResponse
	RPush(key interface{}, val ...interface{}) *RedisResponse
	RPushX(key interface{}, val ...interface{}) *RedisResponse

	// Set operations
	SAdd(key interface{}, member ...interface{}) *RedisResponse
	SCard(key interface{}) *RedisResponse
	SDiff(key ...interface{}) *RedisResponse
	SDiffStore(destination interface{}, key ...interface{}) *RedisResponse
	SInter(key ...interface{}) *RedisResponse
	SInterCard(key ...interface{}) *RedisResponse
	SInterStore(destination interface{}, key ...interface{}) *RedisResponse
	SIsMember(key, member interface{}) *RedisResponse
	SMembers(key interface{}) *RedisResponse
	SMIsMember(key interface{}, member ...interface{}) *RedisResponse
	SMove(source, destination, member interface{}) *RedisResponse
	SPop(key interface{}) *RedisResponse
	SRandMember(key interface{}) *RedisResponse
	SRem(key interface{}, member ...interface{}) *RedisResponse
	SScan(key interface{}, cursor int64, match string, count int64) *RedisResponse
	SUnion(key ...interface{}) *RedisResponse
	SUnionStore(destination interface{}, key ...interface{}) *RedisResponse

	// Sorted Set operations
	ZAdd(key interface{}, score float64, member interface{}, pairs ...interface{}) *RedisResponse
	ZCard(key interface{}) *RedisResponse
	ZCount(key interface{}, min, max string) *RedisResponse
	ZDiff(key ...interface{}) *RedisResponse
	ZDiffStore(destination interface{}, key ...interface{}) *RedisResponse
	ZIncrBy(key interface{}, increment float64, member interface{}) *RedisResponse
	ZInter(key ...interface{}) *RedisResponse
	ZInterCard(key ...interface{}) *RedisResponse
	ZInterStore(destination interface{}, key ...interface{}) *RedisResponse
	ZLexCount(key interface{}, min, max string) *RedisResponse
	ZMPop(count int64, where string, key ...interface{}) *RedisResponse
	ZMScore(key interface{}, member ...interface{}) *RedisResponse
	ZPopMax(key interface{}) *RedisResponse
	ZPopMin(key interface{}) *RedisResponse
	ZRandMember(key interface{}) *RedisResponse
	ZRange(key interface{}, start, stop int64) *RedisResponse
	ZRangeByLex(key interface{}, min, max string) *RedisResponse
	ZRangeByScore(key interface{}, min, max string) *RedisResponse
	ZRangeStore(dst interface{}, src interface{}, min, max int64) *RedisResponse
	ZRevRange(key interface{}, start, stop int64) *RedisResponse
	ZRevRangeByLex(key interface{}, max, min string) *RedisResponse
	ZRevRangeByScore(key interface{}, max, min string) *RedisResponse
	ZRank(key, member interface{}) *RedisResponse
	ZRem(key interface{}, member ...interface{}) *RedisResponse
	ZRemRangeByLex(key interface{}, min, max string) *RedisResponse
	ZRemRangeByRank(key interface{}, start, stop int64) *RedisResponse
	ZRemRangeByScore(key interface{}, min, max string) *RedisResponse
	ZRevRank(key, member interface{}) *RedisResponse
	ZScan(key interface{}, cursor int64, match string, count int64) *RedisResponse
	ZScore(key, member interface{}) *RedisResponse
	ZUnion(key ...interface{}) *RedisResponse
	ZUnionStore(destination interface{}, key ...interface{}) *RedisResponse

	// Admin operations
	FlushDB() *RedisResponse
	FlushAll() *RedisResponse
	Scan(cursor int64, match string, count int64) *RedisResponse
	Ping() *RedisResponse
	Publish(key interface{}, val interface{}) *RedisResponse

	// Script operations
	Eval(script string, keys []interface{}, args []interface{}) *RedisResponse
}

RedisOperator defines the interface for Redis operations. This interface allows for both real and mock implementations, enabling comprehensive unit testing while maintaining API compatibility.

type RedisPipelineCmd added in v1.1.14

type RedisPipelineCmd struct {
	Cmd  string
	Args []interface{}
}

RedisPipelineCmd describes a single command and its arguments in a pipeline batch.

type RedisResponse

type RedisResponse struct {
	RedisResponseEntity
	Error error
}

RedisResponse wraps a Redis reply and an optional error. It embeds RedisResponseEntity to provide typed accessors for the reply payload.

func (*RedisResponse) RecordNotFound

func (k *RedisResponse) RecordNotFound() bool

type RedisResponseEntity

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

RedisResponseEntity holds a single Redis reply value and provides typed accessors. It wraps the raw reply so callers can convert to int64/string/bytes safely.

func (*RedisResponseEntity) GetBytes

func (k *RedisResponseEntity) GetBytes() []byte

GetBytes returns the underlying reply as a byte slice when available. Returns nil if the reply is not a []byte.

func (*RedisResponseEntity) GetFloat64 added in v1.2.0

func (k *RedisResponseEntity) GetFloat64() float64

GetFloat64 converts the underlying reply to float64 when possible. Returns 0.0 if the value is not numeric or cannot be parsed.

func (*RedisResponseEntity) GetInt64

func (k *RedisResponseEntity) GetInt64() int64

GetInt64 converts the underlying reply to int64 when possible. Returns 0 if the value is not numeric or cannot be parsed.

func (*RedisResponseEntity) GetSlice added in v1.1.16

func (k *RedisResponseEntity) GetSlice() []RedisResponseEntity

GetSlice converts an array reply into a slice of RedisResponseEntity for typed access. Returns an empty slice if the reply is not an array.

func (*RedisResponseEntity) GetString

func (k *RedisResponseEntity) GetString() string

GetString returns the underlying reply coerced to string when possible. For []byte, it converts bytes to string; for numeric values, it formats as decimal string.

type SetOptions added in v1.2.3

type SetOptions struct {
	// NX - Only set the key if it does not already exist
	NX bool
	// XX - Only set the key if it already exists
	XX bool
	// GET - Return the old value stored at key
	GET bool
	// EX - Set expire time in seconds
	EX int64
	// PX - Set expire time in milliseconds
	PX int64
	// EXAT - Set expire time as Unix timestamp in seconds
	EXAT int64
	// PXAT - Set expire time as Unix timestamp in milliseconds
	PXAT int64
	// KEEPTTL - Retain the TTL associated with the key
	KEEPTTL bool
}

SetOptions defines options for the SetWithOptions command.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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