- 采用sync.Map为基础进行设计,具有高可用性与安全并发特性。
- 具有持久化与临时储存功能,持久化采用主备双文件保存,每个数据均使用crc32校验以保证数据的安全、准确性。
- 支持多种格式直接保存读取,string,bool,int-int64,uint-uint64,nil,float32,float64,[]byte,其他格式使用json反序列化获取
必须使用Start来启动cache,path为空的时候将缓存保存到./cache文件夹
开启web监控页面,方便查看当前缓存内存
cache.StartWebServer("0.0.0.0:8080")
cache.NoPersistence = true //关闭持久化功能,缓存增删改不写入硬盘,建议把生成的本地缓存./cache/db.cache ./cache/db.cache.bak一起删除
- value支持一下三个格式,会转化为string的key与interface{}的value
- 任意map
- struct,这时候会按照struct的成员名字转化key,成员值转为value
- sync.Map
cache.Hset("luyu6056",map[string]interface{}{"login_time":1591174524},"member_info") //第四个参数,expire为过期时间,可以省略,默认永久保存
获取取一个cache的结构体用于后续操作,如果不存在则创建一个新的缓存,这里命名为_hset
_hset := cache.Hget("luyu6056","member_info") 可以利用不同的patch进行批量删除
判断缓存是否存在,存在返回缓存对象
_hset,ok:=cache.Has("luyu6056","member_info")
if !ok{
fmt.Println("缓存不存在")
}
删除一个缓存
cache.Hdel("luyu6056","member_info")
针对path删除一整组缓存
cache.Hdel("member_info")
从_hset读取一个缓存数据,返回interface{}和bool
v,ok := _hset.Load("login_time")
if ok {
fmt.Println(v) //int 1591174524
}
使用该缓存的[]byte,对value进行反序列化赋值,建议之前保存的格式一致,否则调用Unmarshal会出现其它问题
var login_time int
ok := _hset.Get("login_time",&s)
if ok {
fmt.Println(login_time) //1591174524
}
Load_str,Load_int,Load_int64,Load_int32,Load_int16,Load_int8,Load_uint64,Load_float64,Load_float32,Load_bool
尝试对改缓存进行强行转换输出
s := _hset.Load_str("login_time")
fmt.Println(s) //1591174524
返回hset的长度
fmt.Println(_hset.Len()) //1
遍历_hset,key为string,value为interface{}
_hset.range(func(key string,value interface)bool{
fmt.Println(key,value) //login_time 1591174524
return true
})
获取超时时间,返回时间戳
fmt.Println(_hset.GetExpire()) //-1无限长
在当前时间基础上,设置过期时间,单位秒
_hset.EXPIRE(30) //30秒后删除
设置过期时间,传入秒级时间戳
_hset.EXPIRE(time.Now().Unix()+30) //超过当前时间会立即删除
写入key-value值,与Hset()一样,支持传入任意map,struct与sync.Map
_hset.Hset(map[string]interface{}{"login_time":1591174524})
只写入一个key-value
_hset.Hset("login_time",1591174524)
写入一个临时key,重启失效
_hset.Store("temp",true)
对所有key进行异步保存,包括上面Store临时新建的key
_hset.Save()
对所有key进行立刻保存,程序会阻塞到写入完成
_hset.Save_r()
删掉某个key
_hset.Delete("temp")
对某个key的值进行进行加减,类型为int64,负值为减,正值为增加
_hset.INCRBY("uid",1)