cache

package
v2.3.38 Latest Latest
Warning

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

Go to latest
Published: Dec 27, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BatchGetCache

func BatchGetCache[T any, K comparable](
	ctx context.Context,
	rcClient *rockscache.Client,
	expire time.Duration,
	keys []K,
	keyFn func(key K) string,
	fns func(ctx context.Context, key K) (T, error),
) ([]T, error)

BatchGetCache получает данные из кэша RocksCache для нескольких ключей или вызывает функцию для получения данных, если их нет в кэше.

func GetCache

func GetCache[T any](ctx context.Context, rcClient *rockscache.Client, key string, expire time.Duration, fn func(ctx context.Context) (T, error)) (T, error)

GetCache получает данные из кэша RocksCache или вызывает функцию для получения данных, если их нет в кэше.

func GetRocksCacheOptions

func GetRocksCacheOptions() rockscache.Options

GetRocksCacheOptions возвращает конфигурационные опции по умолчанию для RocksCache.

func ProcessKeysBySlot

func ProcessKeysBySlot(
	ctx context.Context,
	redisClient redis.UniversalClient,
	keys []string,
	processFunc func(ctx context.Context, slot int64, keys []string) error,
	opts ...Option,
) error

ProcessKeysBySlot группирует ключи по хэш-слотам Redis и обрабатывает их с использованием предоставленной функции.

Types

type BatchDeleter

type BatchDeleter interface {
	// ChainExecDel метод используется для цепочечных вызовов и должен вызывать Clone для предотвращения загрязнения памяти.
	ChainExecDel(ctx context.Context) error
	// ExecDelWithKeys метод принимает ключи для удаления.
	ExecDelWithKeys(ctx context.Context, keys []string) error
	// Clone метод создает копию BatchDeleter, чтобы избежать модификации исходного объекта.
	Clone() BatchDeleter
	// AddKeys метод добавляет ключи для удаления.
	AddKeys(keys ...string)
}

BatchDeleter интерфейс для выполнения пакетного удаления ключей из кэша

type BatchDeleterRedis

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

BatchDeleterRedis конкретная реализация интерфейса BatchDeleter, основанная на Redis и RocksCache.

func NewBatchDeleterRedis

func NewBatchDeleterRedis(redisClient redis.UniversalClient, options rockscache.Options) *BatchDeleterRedis

NewBatchDeleterRedis создает новый экземпляр BatchDeleterRedis.

func (*BatchDeleterRedis) AddKeys

func (c *BatchDeleterRedis) AddKeys(keys ...string)

AddKeys добавляет ключи для удаления.

func (*BatchDeleterRedis) ChainExecDel

func (c *BatchDeleterRedis) ChainExecDel(ctx context.Context) error

ChainExecDel используется для цепочечных вызовов для пакетного удаления. Необходимо вызвать Clone для предотвращения загрязнения памяти.

func (*BatchDeleterRedis) Clone

func (c *BatchDeleterRedis) Clone() BatchDeleter

Clone создает копию BatchDeleterRedis для цепочечных вызовов, чтобы предотвратить загрязнение памяти.

func (*BatchDeleterRedis) ExecDelWithKeys

func (c *BatchDeleterRedis) ExecDelWithKeys(ctx context.Context, keys []string) error

ExecDelWithKeys напрямую принимает ключи для пакетного удаления и публикует информацию об удалении.

type Option

type Option func(c *RedisShardManagerConfig)

Option это функция-конфигуратор для RedisShardManagerConfig

func WithBatchSize

func WithBatchSize(size int) Option

WithBatchSize устанавливает количество ключей для обработки за раз

func WithConcurrentLimit

func WithConcurrentLimit(limit int) Option

WithConcurrentLimit устанавливает лимит конкурентных операций

func WithContinueOnError

func WithContinueOnError(continueOnError bool) Option

WithContinueOnError устанавливает, следует ли продолжать обработку при ошибках

type RedisShardManagerConfig

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

RedisShardManagerConfig конфигурация для ShardManager

type ShardManager

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

ShardManager управляет шардированием и обработкой ключей

func NewRedisShardManager

func NewRedisShardManager(redisClient redis.UniversalClient, opts ...Option) *ShardManager

NewRedisShardManager создает новый экземпляр ShardManager

func (*ShardManager) ProcessKeysBySlot

func (rsm *ShardManager) ProcessKeysBySlot(
	ctx context.Context,
	keys []string,
	processFunc func(ctx context.Context, slot int64, keys []string) error,
) error

ProcessKeysBySlot группирует ключи по хэш-слотам Redis и обрабатывает их с использованием предоставленной функции.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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