https://github.com/itmisx/go-cache
类似redis的本地缓存库,支持string和hash。特性:支持hash field过期时间设置以及过期回调
https://github.com/itmisx/go-cache
Last synced: about 1 year ago
JSON representation
类似redis的本地缓存库,支持string和hash。特性:支持hash field过期时间设置以及过期回调
- Host: GitHub
- URL: https://github.com/itmisx/go-cache
- Owner: itmisx
- License: mit
- Created: 2023-01-11T01:28:26.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-07T15:18:02.000Z (about 3 years ago)
- Last Synced: 2025-03-30T08:41:32.767Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 48.8 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-cache
一个基于内存的 key/value 的 go 语言存储库,支持 string 和 hash, 类似redis
#### 🚀 安装
`go get -u github.com/itmisx/go-cache`
#### ✨ 特性
- 支持过期回调函数
- 支持哈希字段的过期时间设置
#### 🏗️ 使用场景
主要用在单机或本地缓存场景
#### ✅ 开始使用
- 设置键值,不带过期回调
```go
cache.Set("key1", 1, time.Second*4, nil)
```
- 设置键值,带过期回调
```go
cache.Set("key1", 1, time.Second*4, func(key string, value interface{}) {
log.Println("callback1", key, value)
})
```
- 设置键的过期时间
```go
cache.Expire("key1",time.Second*4)
```
- 获取键值
```go
// found指示是否存在
value,found := cache.Get("key1")
```
- 删除键
```go
cache.Del("key1")
```
- 设置 hash,带过期回调
```go
cache.HSet("hkey1", "hfield1", 1, time.Second*8, func(key string, field string, value interface{}) {
log.Println("callback2", key, field, value)
})
```
- 设置 hash 字段的过期时间
```go
cache.Expire("hkey1","hfield1",time.Second*3)
```
- 获取 hash 值
```go
// found指示是否存在
value,found := cache.HGet("hkey1","hfield1")
```
- 获取所有的hash值
```go
val,found:=cache.HGetAll("hkey1")
```
- 删除 hash 字段
```go
val,fount:=cache.HDel("hkey1","hfield1")
```