前言
最近想試著使用 Redis ,於是乎這一篇就誕生了!
本文會使用 Docker 來建立測試用的 Redis Server,並使用 Go 語言來寫入、讀取資料。
主要內容
Redis Server
我們要使用 Docker 來快速的起一個 redis。雖然參考官方文件輸入 docker 指令就可以了,但筆者還是喜歡用 docker-compose 進行操作。所以下列也提供 docker-compse.yaml 的內容。
Docker 黨
1docker run --name my-redis --rm -it -v 6379:6379 redis:7-alpineDocker-compose 黨
docker-compose.yaml:
1version: "3.9"
2services:
3 redis:
4 image: redis:7-alpine
5 ports:
6 - 6379:6379
7 restart: "no"然後
1docker-compose upGo-Redis
這邊也是照著官方的文件操作就可以了!
1go get github.com/go-redis/redis/v9連線到 redis
1rdb := redis.NewClient(&redis.Options{
2 Addr: "localhost:6379",
3 Password: "", // no password set
4 DB: 0, // use default DB
5})
6
7pong, err := rdb.Ping(ctx).Result()
8if err != nil {
9 panic(err)
10}寫入值
1if err := rdb.Set(ctx, "key2", "value_2", 0).Err(); err != nil {
2 return err
3}讀取值
1value, err := client.Get(ctx, "key2").Result()
2if err == redis.Nil {
3 fmt.Println("value does not exist")
4} else if err != nil {
5 fmt.Println("client.Get failed", err)
6} else {
7 fmt.Println("key2", value)
8}完整檔案
main.go
1func main() {
2 ctx := context.Background()
3 rdb := redis.NewClient(&redis.Options{
4 Addr: "localhost:6379",
5 })
6
7 if pong, err := rdb.Ping(ctx).Result(); err != nil {
8 panic(err.Error())
9 } else {
10 fmt.Println(pong)
11 }
12
13 if err := rdb.Set(ctx, "key", 1, 0).Err(); err != nil {
14 panic(err.Error())
15 }
16
17 value, err := rdb.Get(ctx, "key").Int64()
18 if err == redis.Nil {
19 fmt.Printf("value - %d\n", 0)
20 } else if err != nil {
21 fmt.Printf("value - %s\n", err.Error())
22 } else {
23 fmt.Printf("value - %d\n", value)
24 }
25}結果
1PONG
2value - 1小結
本篇只是順手將找尋的資料以及測試用的程式記下來。未來如果有新的發現,或許會繼續的更新!