Skip to content

zhanglp0129/redis_cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RedisCache

Golang使用redis缓存,将数据转换为json,并存入redis

使用

  1. 安装依赖
go get -u github.com/zhanglp0129/redis_cache
  1. 带着缓存查询
// 创建redis客户端连接
rdb := redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
})
// redis key
key := "test_key"
// model可以是任意类型
model := ""

// 带着缓存查询,需要传入查询函数,在缓存未命中时调用
hit, err := QueryWithCache(rdb, key, &model, func() (*string, error) {
    data := "test_data"
    return &data, nil
})

// 打印结果
fmt.Println("是否命中缓存:", hit)
fmt.Println("结果:", model)
  1. 删除缓存
rdb := redis.NewClient(&redis.Options{
    Addr: "127.0.0.1:6379",
})
key := "test_key"

err := DeleteCache(rdb, key)

TODO

  • 文档和注释改为英文,同时优化文档
  • 带着缓存查询时,能够加锁,防止缓存多次写入
  • 添加布隆过滤器的实现
  • 能针对不同的数据类型,使用不同的数据结构缓存
  • 针对不同的redis数据结构,使用不同的方式修改缓存
  • 能主动刷新缓存时间