Documentation ¶
Index ¶
- func Bypass(ctx context.Context) context.Context
- func IsBypassed(ctx context.Context) bool
- type Cache
- func (c *Cache[K, V]) EvictOnSuccess(ctx context.Context, item K, err error) error
- func (c *Cache[K, V]) Get(ctx context.Context, id K) (V, error)
- func (c *Cache[K, V]) List(ctx context.Context, onMissError func(K, error) bool, items ...K) (outputs []V, err error)
- func (c *Cache[K, V]) Store(ctx context.Context, id K, value V) error
- func (c *Cache[K, V]) WithExtendOnHit() *Cache[K, V]
- func (c *Cache[K, V]) WithMaxConcurrency(concurrency int) *Cache[K, V]
- func (c *Cache[K, V]) WithMissMany(cb fetchMany[K, V]) *Cache[K, V]
- func (c *Cache[K, V]) WithRead(client RedisClient) *Cache[K, V]
- func (c *Cache[K, V]) WithSerializer(serializer Serializer[V]) *Cache[K, V]
- func (c *Cache[K, V]) WithTTL(ttl time.Duration) *Cache[K, V]
- type IndexedItems
- type JSONSerializer
- type RedisClient
- type Serializer
- type StringSerializer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsBypassed ¶ added in v4.59.0
Types ¶
type Cache ¶ added in v4.64.0
type Cache[K comparable, V any] struct { // contains filtered or unexported fields }
func New ¶
func New[K comparable, V any](client RedisClient, toKey func(K) string, onMiss fetch[K, V], tracerProvider trace.TracerProvider) *Cache[K, V]
func (*Cache[K, V]) EvictOnSuccess ¶ added in v4.64.0
func (*Cache[K, V]) List ¶ added in v4.64.0
func (c *Cache[K, V]) List(ctx context.Context, onMissError func(K, error) bool, items ...K) (outputs []V, err error)
If onMissError returns false, List stops by returning an error
func (*Cache[K, V]) WithExtendOnHit ¶ added in v4.64.0
func (*Cache[K, V]) WithMaxConcurrency ¶ added in v4.64.0
func (*Cache[K, V]) WithMissMany ¶ added in v4.64.0
func (*Cache[K, V]) WithRead ¶ added in v4.64.0
func (c *Cache[K, V]) WithRead(client RedisClient) *Cache[K, V]
func (*Cache[K, V]) WithSerializer ¶ added in v4.64.0
func (c *Cache[K, V]) WithSerializer(serializer Serializer[V]) *Cache[K, V]
type IndexedItems ¶ added in v4.53.6
type IndexedItems[K comparable] map[K]int
func (IndexedItems[K]) Items ¶ added in v4.53.6
func (ii IndexedItems[K]) Items() []K
type JSONSerializer ¶ added in v4.62.0
type JSONSerializer[V any] struct{}
func (JSONSerializer[V]) Decode ¶ added in v4.62.0
func (JSONSerializer[V]) Decode(payload []byte) (V, error)
func (JSONSerializer[V]) Encode ¶ added in v4.62.0
func (JSONSerializer[V]) Encode(payload V) ([]byte, error)
type RedisClient ¶ added in v4.28.0
type RedisClient interface { Enabled() bool Load(ctx context.Context, key string) ([]byte, error) LoadMany(ctx context.Context, keys ...string) ([]string, error) Store(ctx context.Context, key string, value any, ttl time.Duration) error Delete(ctx context.Context, keys ...string) error Expire(ctx context.Context, ttl time.Duration, keys ...string) error Pipeline() redis.Pipeliner }
type Serializer ¶ added in v4.62.0
type StringSerializer ¶ added in v4.62.0
type StringSerializer struct{}
Click to show internal directories.
Click to hide internal directories.