gf/g/os/gcache/gcache.go

88 lines
2.7 KiB
Go
Raw Normal View History

// Copyright 2017-2018 gf Author(https://github.com/gogf/gf). All Rights Reserved.
2017-12-29 16:03:30 +08:00
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
2017-12-29 16:03:30 +08:00
2019-01-16 13:35:16 +08:00
// Package gcache provides high performance and concurrent-safe in-memory cache for process.
2017-11-23 10:21:28 +08:00
package gcache
// 全局缓存管理对象
2018-09-18 09:45:06 +08:00
var cache = New()
// (使用全局KV缓存对象)设置kv缓存键值对过期时间单位为**毫秒**
func Set(key interface{}, value interface{}, expire int) {
cache.Set(key, value, expire)
2017-11-23 10:21:28 +08:00
}
// 当键名不存在时写入并返回true否则返回false。
// 常用来做对并发性要求不高的内存锁。
func SetIfNotExist(key interface{}, value interface{}, expire int) bool {
return cache.SetIfNotExist(key, value, expire)
}
// (使用全局KV缓存对象)批量设置kv缓存键值对过期时间单位为**毫秒**
func Sets(data map[interface{}]interface{}, expire int) {
cache.Sets(data, expire)
2017-11-23 10:21:28 +08:00
}
// (使用全局KV缓存对象)获取指定键名的值
func Get(key interface{}) interface{} {
return cache.Get(key)
2017-11-23 10:21:28 +08:00
}
// 当键名存在时返回其键值,否则写入指定的键值
func GetOrSet(key interface{}, value interface{}, expire int) interface{} {
return cache.GetOrSet(key, value, expire)
}
// 当键名存在时返回其键值,否则写入指定的键值,键值由指定的函数生成
func GetOrSetFunc(key interface{}, f func() interface{}, expire int) interface{} {
return cache.GetOrSetFunc(key, f, expire)
}
2018-09-20 09:28:45 +08:00
// 与GetOrSetFunc不同的是f是在写锁机制内执行
func GetOrSetFuncLock(key interface{}, f func() interface{}, expire int) interface{} {
return cache.GetOrSetFuncLock(key, f, expire)
}
// 是否存在指定的键名true表示存在false表示不存在。
func Contains(key interface{}) bool {
return cache.Contains(key)
}
2017-11-23 10:21:28 +08:00
// (使用全局KV缓存对象)删除指定键值对
2018-09-18 00:01:10 +08:00
func Remove(key interface{}) interface{} {
return cache.Remove(key)
2017-11-23 10:21:28 +08:00
}
// (使用全局KV缓存对象)批量删除指定键值对
func Removes(keys []interface{}) {
cache.Removes(keys)
}
// 返回缓存的所有数据键值对(不包含已过期数据)
func Data() map[interface{}]interface{} {
return cache.Data()
}
// 获得所有的键名,组成数组返回
func Keys() []interface{} {
2018-03-27 17:53:46 +08:00
return cache.Keys()
}
// 获得所有的键名,组成字符串数组返回
func KeyStrings() []string {
return cache.KeyStrings()
}
2018-03-27 17:53:46 +08:00
// 获得所有的值,组成数组返回
func Values() []interface{} {
return cache.Values()
}
// 获得缓存对象的键值对数量
func Size() int {
return cache.Size()
}