这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
hello 昨天我们分享了go语言操作Mysql的框架 gorm,可以说,学会了gorm,对这门的语言的掌握就等于打开了一个新世界,能够操作的事情就丰富了起来,今天我们来了解一个缓存中间件---Redis,redis常常被我们用来做一个数据库的缓存,用来避免数据库过量的请求访问
Redis基本介绍
如果你想深入了解Redis的话,我建议你可以去看看《Redis设计与实现》这本书,其中从Redis基本类型讲到分布式部署原理,对于了解原理有很大的帮助,实际上,这就是中能够持久化的Map,好的本篇文章我们假设你懂了一些基本的操作,直接来讲述如何用go语言来操作redis
go-redis依赖
首先在项目目录下安装依赖
go get -u github.com/go-redis/redis
连接数据库
和MySQL大差不差,我们要先建立连接,才能对数据库进行操作,与GORM框架相同go-redis包自带了连接池,会自动维护redis连接,因此创建一次client即可,不要查询一次redis就关闭client。
// 声明一个全局的redisDb变量
var redisDb *redis.Client
// 根据redis配置初始化一个客户端
func initClient() (err error) {
redisDb = redis.NewClient(&redis.Options{
Addr: "localhost:6379", // redis地址
Password: "", // redis密码,没有则留空
DB: 0, // 默认数据库,默认是0
})
//通过 *redis.Client.Ping() 来检查是否成功连接到了redis服务器
_, err = redisDb.Ping().Result()
if err != nil {
return err
}
return nil
}
基本操作
好的,现在我们拿到了redisDB这个数据库连接了,我们可以对我们的redis库进行一些操作。操作列表如下所示:
err = redisDb.Set("zhangsan", "123", 0).Err()
if err != nil {
panic(err)
}
var val string
// 第一个是key的值,第二个是错误信息
val, err = redisDb.Get("name1").Result()
if err != nil {
panic(err)
}
fmt.Println("zhangsan = :", val) //name1的值:zhangsan
}
观察上面代码,这个Set方法的意思就是说设置zhangsan键为123,通过Get方法来获取键的值,这个还是很好理解的,注意以上操作是用的基本类型String,当然还有其它的操作类型可以操作,可以参考掘金的下面这篇文章,我觉得讲的很好go-redis文档 - 掘金 (juejin.cn)