一个基于内存的 key/value 的 go 语言存储库,支持 string 和 hash, 类似redis
go get -u github.com/itmisx/go-cache
- 支持过期回调函数
- 支持哈希字段的过期时间设置
主要用在单机或本地缓存场景
- 设置键值,不带过期回调
cache.Set("key1", 1, time.Second*4, nil)
- 设置键值,带过期回调
cache.Set("key1", 1, time.Second*4, func(key string, value interface{}) {
log.Println("callback1", key, value)
})
- 设置键的过期时间
cache.Expire("key1",time.Second*4)
- 获取键值
// found指示是否存在
value,found := cache.Get("key1")
- 删除键
cache.Del("key1")
- 设置 hash,带过期回调
cache.HSet("hkey1", "hfield1", 1, time.Second*8, func(key string, field string, value interface{}) {
log.Println("callback2", key, field, value)
})
- 设置 hash 字段的过期时间
cache.Expire("hkey1","hfield1",time.Second*3)
- 获取 hash 值
// found指示是否存在
value,found := cache.HGet("hkey1","hfield1")
- 获取所有的hash值
val,found:=cache.HGetAll("hkey1")
- 删除 hash 字段
val,fount:=cache.HDel("hkey1","hfield1")