Files
storage/ristretto/config.go
2021-04-13 23:12:57 -04:00

47 lines
835 B
Go

package ristretto
// Config defines the config for storage.
type Config struct {
// NumCounters number of keys to track frequency of (10M).
NumCounters int64
// MaxCost maximum cost of cache (1GB).
MaxCost int64
// BufferItems number of keys per Get buffer.
BufferItems int64
DefaultCost int64
}
var ConfigDefault = Config{
NumCounters: 1e7,
MaxCost: 1 << 30,
BufferItems: 64,
DefaultCost: 1,
}
func configDefault(config ...Config) Config {
if len(config) < 1 {
return ConfigDefault
}
cfg := config[0]
if cfg.NumCounters < 1 {
cfg.NumCounters = ConfigDefault.NumCounters
}
if cfg.MaxCost < 1 {
cfg.MaxCost = ConfigDefault.MaxCost
}
if cfg.BufferItems < 1 {
cfg.BufferItems = ConfigDefault.BufferItems
}
if cfg.DefaultCost == 0 {
cfg.DefaultCost = ConfigDefault.DefaultCost
}
return cfg
}