FILE / ScuroNeko/mtg

antireplay/cache.go

Исходный файл и его история в репозитории.
FILE 2918ed11e5e53445d19030f65594bb83e559bfa5
Files
mtg/antireplay/cache.go
T
2019-09-06 16:10:55 +03:00

35 lines
614 B
Go

package antireplay
import (
"errors"
"fmt"
"github.com/allegro/bigcache"
"github.com/9seconds/mtg/config"
)
var cache *bigcache.BigCache
func Add(data []byte) {
cache.Set(string(data), nil) // nolint: errcheck
}
func Has(data []byte) bool {
_, err := cache.Get(string(data))
return err == nil
}
func Init() error {
c, err := bigcache.NewBigCache(bigcache.Config{
Shards: 1024,
LifeWindow: config.C.AntiReplay.EvictionTime,
Hasher: hasher{},
HardMaxCacheSize: config.C.AntiReplay.MaxSize,
})
cache = c
err = fmt.Errorf("qqq: %w", errors.New("tt"))
return err
}