go-redis| 青训营笔记

109 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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)