Documentation ¶
Index ¶
- func BatchGetCache[T any, K comparable](ctx context.Context, rcClient *rockscache.Client, expire time.Duration, ...) ([]T, error)
- func GetCache[T any](ctx context.Context, rcClient *rockscache.Client, key string, ...) (T, error)
- func GetRocksCacheOptions() rockscache.Options
- func ProcessKeysBySlot(ctx context.Context, redisClient redis.UniversalClient, keys []string, ...) error
- type BatchDeleter
- type BatchDeleterRedis
- type Option
- type RedisShardManagerConfig
- type ShardManager
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 ¶
WithBatchSize устанавливает количество ключей для обработки за раз
func WithConcurrentLimit ¶
WithConcurrentLimit устанавливает лимит конкурентных операций
func WithContinueOnError ¶
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 и обрабатывает их с использованием предоставленной функции.