前两篇我们介绍了如何在 Go 对 MySQL 和 Scylla 做操作,而这两个皆为较具规模的储存引擎,而如果你想要做快取,资料只是 key-value 的格式,那你就无须用到前两个资料库,可以使用 Redis 来达到需求,本片就要来介绍 Go 语言与 redis 的搭配使用。
这里一样用 docker 起一个 redis资料库,
$ docker run --name redis-lab -p 6379:6379 -d redis
docker 真的是很方便的好东西,这样简简单单就可以建置环。
Go 语言,也有支援 redis 操作的第三方套件,这边是使用 go-redis 套件,这便先仔入好套件,
$ go get github.com/go-redis/redis
这里建立连线很简单,应为在使用 docker 建立 redis 时,已经有 port-forward 到本机
的6379 port 了,所以 Addr 填入 localhost:6379:
c := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
DB: 0,
})
这边先 set 一笔资料,set 就好比 insert ,只要设定好一个 key 以及相对的 value,最後在设定资料过期的时间(不想让资料过期就设为0) :
err := c.Set("user", "JC", 1000).Err() // => SET key value,1000 代表过期秒数,若不想设定,则带入0,就不会过期
if err != nil {
panic(err)
}
再来就是 get 一笔资料,get 就好比 select,带入自己想要查询的 key,就会得到相对应的 value:
val, err := c.Get("user").Result() // Get value by key
if err != nil {
panic(err)
}
fmt.Println("user:", val)
再来如果带入不存在的的 key 值,就会直接 panic 掉。
删除则是用 Del,你可以执行以下程序,在用 Get 来确认是否能取得到值,如果取不到则是已经不存在该 key 值:
val, err := c.Del("user").Result() // Del value by key
if err != nil {
panic(err)
}
fmt.Println("user:", val)
今天带来 Go 语言与 redis 的搭配使用,适合用在暂存以及快取型态的资料,感谢今天的阅读,希望对你有帮助!
<<: [前端暴龙机,Vue2.x 进化 Vue3 ] Day26. Vue3 Composition API 使用(二)
在上一篇中介绍了什麽是 Angular CLI 与他可以提供许多方便功能,不过只是大概介绍他的用法与...
分享一些多年来专案管理及工作的心得: 专案是实现使命、愿景,及战略的具体努力。使命感、远见与作梦的能...
理解了 IP 位置的组成,我们接着来看看一些常被提到的相关名词:浮动、固定及虚拟 IP 位置。 浮动...
大家好~ 我是五岁~~ 今天来继续画四足车车~~ 接续昨天的草稿图,因为没有要重新描绘一次线稿,所以...
范先生推荐好物时间 本期要跟大夥介绍的是如何一键下载在线影片,适合多种网站,包括Xvideo,Por...