mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 10:25:52 +02:00
40 lines
827 B
Go
40 lines
827 B
Go
package cache
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/dgraph-io/ristretto/v2"
|
|
"github.com/uozi-tech/cosy/logger"
|
|
)
|
|
|
|
var cache *ristretto.Cache[string, any]
|
|
|
|
func Init(ctx context.Context) {
|
|
var err error
|
|
cache, err = ristretto.NewCache(&ristretto.Config[string, any]{
|
|
NumCounters: 1e7, // number of keys to track frequency of (10M).
|
|
MaxCost: 1 << 30, // maximum cost of cache (1GB).
|
|
BufferItems: 64, // number of keys per Get buffer.
|
|
})
|
|
|
|
if err != nil {
|
|
logger.Fatal("initializing local cache err", err)
|
|
}
|
|
|
|
// Initialize the config scanner
|
|
InitScanner(ctx)
|
|
}
|
|
|
|
func Set(key string, value interface{}, ttl time.Duration) {
|
|
cache.SetWithTTL(key, value, 0, ttl)
|
|
cache.Wait()
|
|
}
|
|
|
|
func Get(key string) (value interface{}, ok bool) {
|
|
return cache.Get(key)
|
|
}
|
|
|
|
func Del(key string) {
|
|
cache.Del(key)
|
|
}
|