Files
be.ems/lib/core/cache/lcoal.go
2023-09-06 10:46:28 +08:00

57 lines
1.2 KiB
Go

package cache
import (
"strings"
"time"
"github.com/patrickmn/go-cache"
)
// 创建一个全局的不过期缓存对象
var cNoExpiration = cache.New(cache.NoExpiration, cache.NoExpiration)
// 将数据放入缓存,并设置永不过期
func SetLocal(key string, value any) {
cNoExpiration.Set(key, value, cache.NoExpiration)
}
// 从缓存中获取数据
func GetLocal(key string) (any, bool) {
return cNoExpiration.Get(key)
}
// 从缓存中删除数据
func DeleteLocal(key string) {
cNoExpiration.Delete(key)
}
// 获取指定前缀的所有键
func GetLocalKeys(prefix string) []string {
prefix = strings.TrimSuffix(prefix, "*")
var keys []string
for key := range cNoExpiration.Items() {
if strings.HasPrefix(key, prefix) {
keys = append(keys, key)
}
}
return keys
}
// 创建一个全局的过期缓存对象
var cTTL = cache.New(6*time.Hour, 12*time.Hour)
// 设置具有过期时间的缓存项
func SetLocalTTL(key string, value any, expiration time.Duration) {
cTTL.Set(key, value, expiration)
}
// 从缓存中获取数据
func GetLocalTTL(key string) (any, bool) {
return cTTL.Get(key)
}
// 从缓存中删除数据
func DeleteLocalTTL(key string) {
cTTL.Delete(key)
}