Update Context for store
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
// Filename: internal/store/store.go
|
||||
|
||||
package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
@@ -17,6 +20,7 @@ type Message struct {
|
||||
// Subscription represents an active subscription to a pub/sub channel.
|
||||
type Subscription interface {
|
||||
Channel() <-chan *Message
|
||||
ChannelName() string
|
||||
Close() error
|
||||
}
|
||||
|
||||
@@ -38,6 +42,10 @@ type Pipeliner interface {
|
||||
LPush(key string, values ...any)
|
||||
LRem(key string, count int64, value any)
|
||||
|
||||
// ZSET
|
||||
ZAdd(key string, members map[string]float64)
|
||||
ZRem(key string, members ...any)
|
||||
|
||||
// Execution
|
||||
Exec() error
|
||||
}
|
||||
@@ -45,44 +53,44 @@ type Pipeliner interface {
|
||||
// Store is the master interface for our cache service.
|
||||
type Store interface {
|
||||
// Basic K/V operations
|
||||
Set(key string, value []byte, ttl time.Duration) error
|
||||
Get(key string) ([]byte, error)
|
||||
Del(keys ...string) error
|
||||
Exists(key string) (bool, error)
|
||||
SetNX(key string, value []byte, ttl time.Duration) (bool, error)
|
||||
Set(ctx context.Context, key string, value []byte, ttl time.Duration) error
|
||||
Get(ctx context.Context, key string) ([]byte, error)
|
||||
Del(ctx context.Context, keys ...string) error
|
||||
Exists(ctx context.Context, key string) (bool, error)
|
||||
SetNX(ctx context.Context, key string, value []byte, ttl time.Duration) (bool, error)
|
||||
|
||||
// HASH operations
|
||||
HSet(key string, values map[string]any) error
|
||||
HGetAll(key string) (map[string]string, error)
|
||||
HIncrBy(key, field string, incr int64) (int64, error)
|
||||
HDel(key string, fields ...string) error // [新增]
|
||||
HSet(ctx context.Context, key string, values map[string]any) error
|
||||
HGetAll(ctx context.Context, key string) (map[string]string, error)
|
||||
HIncrBy(ctx context.Context, key, field string, incr int64) (int64, error)
|
||||
HDel(ctx context.Context, key string, fields ...string) error
|
||||
|
||||
// LIST operations
|
||||
LPush(key string, values ...any) error
|
||||
LRem(key string, count int64, value any) error
|
||||
Rotate(key string) (string, error)
|
||||
LIndex(key string, index int64) (string, error)
|
||||
LPush(ctx context.Context, key string, values ...any) error
|
||||
LRem(ctx context.Context, key string, count int64, value any) error
|
||||
Rotate(ctx context.Context, key string) (string, error)
|
||||
LIndex(ctx context.Context, key string, index int64) (string, error)
|
||||
|
||||
// SET operations
|
||||
SAdd(key string, members ...any) error
|
||||
SPopN(key string, count int64) ([]string, error)
|
||||
SMembers(key string) ([]string, error)
|
||||
SRem(key string, members ...any) error
|
||||
SRandMember(key string) (string, error)
|
||||
SAdd(ctx context.Context, key string, members ...any) error
|
||||
SPopN(ctx context.Context, key string, count int64) ([]string, error)
|
||||
SMembers(ctx context.Context, key string) ([]string, error)
|
||||
SRem(ctx context.Context, key string, members ...any) error
|
||||
SRandMember(ctx context.Context, key string) (string, error)
|
||||
|
||||
// Pub/Sub operations
|
||||
Publish(channel string, message []byte) error
|
||||
Subscribe(channel string) (Subscription, error)
|
||||
Publish(ctx context.Context, channel string, message []byte) error
|
||||
Subscribe(ctx context.Context, channel string) (Subscription, error)
|
||||
|
||||
// Pipeline (optional) - 我们在redis实现它,内存版暂时不实现
|
||||
Pipeline() Pipeliner
|
||||
// Pipeline
|
||||
Pipeline(ctx context.Context) Pipeliner
|
||||
|
||||
// Close closes the store and releases any underlying resources.
|
||||
Close() error
|
||||
|
||||
// === 新增方法,支持轮询策略 ===
|
||||
ZAdd(key string, members map[string]float64) error
|
||||
ZRange(key string, start, stop int64) ([]string, error)
|
||||
ZRem(key string, members ...any) error
|
||||
PopAndCycleSetMember(mainKey, cooldownKey string) (string, error)
|
||||
// ZSET operations
|
||||
ZAdd(ctx context.Context, key string, members map[string]float64) error
|
||||
ZRange(ctx context.Context, key string, start, stop int64) ([]string, error)
|
||||
ZRem(ctx context.Context, key string, members ...any) error
|
||||
PopAndCycleSetMember(ctx context.Context, mainKey, cooldownKey string) (string, error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user