Documentation
¶
Index ¶
- Variables
- type Config
- type PostgresStore
- func (s *PostgresStore) Clear(ctx context.Context) error
- func (s *PostgresStore) Close() error
- func (s *PostgresStore) Delete(ctx context.Context, key string) error
- func (s *PostgresStore) Get(ctx context.Context, key string) ([]byte, error)
- func (s *PostgresStore) Set(ctx context.Context, key string, value []byte, ttl time.Duration) error
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidDSN is returned when DSN is empty. ErrInvalidDSN = errors.New("postgres: DSN must not be empty") // ErrInvalidDB is returned when DB is nil. ErrInvalidDB = errors.New("postgres: DB must not be nil") // ErrInvalidMaxOpenConns is returned when MaxOpenConns is < 0. ErrInvalidMaxOpenConns = errors.New("postgres: MaxOpenConns must be >= 0") // ErrInvalidMaxIdleConns is returned when MaxIdleConns is < 0. ErrInvalidMaxIdleConns = errors.New("postgres: MaxIdleConns must be >= 0") // ErrInvalidCleanupBatchSize is returned when CleanupBatchSize is < 0. ErrInvalidCleanupBatchSize = errors.New("postgres: CleanupBatchSize must be >= 0") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// DB is the database connection (REQUIRED, must not be nil).
// The caller is responsible for opening and configuring the connection.
DB *sql.DB
// DSN is the PostgreSQL connection string (REQUIRED if DB is nil, must not be empty).
// Example: "postgres://user:password@localhost:5432/dbname?sslmode=disable"
// Ignored if DB is provided.
DSN string
// TableName is the name of the cache table (OPTIONAL).
// Default: "cache_entries"
TableName string
// MaxOpenConns is the maximum number of open connections to the database (OPTIONAL).
// Default: 25
// Set to 0 for unlimited connections.
// Only used if DSN is provided (ignored if DB is provided).
MaxOpenConns int
// MaxIdleConns is the maximum number of idle connections in the pool (OPTIONAL).
// Default: 5
// Only used if DSN is provided (ignored if DB is provided).
MaxIdleConns int
// ConnMaxLifetime is the maximum lifetime of a connection (OPTIONAL).
// Default: 5 minutes
// Set to 0 for no maximum lifetime.
// Only used if DSN is provided (ignored if DB is provided).
ConnMaxLifetime time.Duration
// CleanupInterval is the interval for cleaning up expired entries (OPTIONAL).
// Default: 1 minute
// Set to negative value to disable automatic cleanup.
CleanupInterval time.Duration
// CleanupBatchSize is the maximum number of entries to delete per cleanup batch (OPTIONAL).
// Default: 1000
// Set to 0 for unlimited batch size (delete all expired entries at once).
CleanupBatchSize int
}
Config holds configuration for PostgresStore.
type PostgresStore ¶
type PostgresStore struct {
// contains filtered or unexported fields
}
PostgresStore is a PostgreSQL-backed cache store. Thread-safe for concurrent use with connection pooling.
Reference: .references/gookit-cache/boltdb/boltdb.go (embedded database operations)
func New ¶
func New(cfg Config) (*PostgresStore, error)
New creates a new PostgresStore with the given configuration.
func (*PostgresStore) Clear ¶
func (s *PostgresStore) Clear(ctx context.Context) error
Clear removes all entries from PostgreSQL.
func (*PostgresStore) Close ¶
func (s *PostgresStore) Close() error
Close releases resources associated with the PostgreSQL database. Idempotent - safe to call multiple times. Only closes the database connection if it was opened by New() (not provided by user).
func (*PostgresStore) Delete ¶
func (s *PostgresStore) Delete(ctx context.Context, key string) error
Delete removes a value from PostgreSQL. Idempotent - deleting a non-existent key returns nil.
Click to show internal directories.
Click to hide internal directories.