iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0

在 Golang 要與 Redis 溝通,可以使用 Redigo

使用 redis.Dial 進行連線,
連接後,使用實體上的方法 Do,對 Redis 下指令,
取回之資料,使用redis.Strings轉換成可使用的字串,
便完成基本與 Redis 的連線與溝通。

package main

import (
	"fmt"
	"os"

	"github.com/gomodule/redigo/redis"
)

func redisConnection() redis.Conn {
	const IPPort = "127.0.0.1:6379"

	rc, err := redis.Dial("tcp", IPPort)
	if err != nil {
		panic(err)
	}
	return rc
}

func redisSet(key string, value string, rc redis.Conn) {
	rc.Do("SET", key, value)
}

func redisSetList(key string, value []string, rc redis.Conn) {
	for _, v := range value {
		fmt.Println(v)
		rc.Do("RPUSH", key, v)
	}
}

func redisGet(key string, rc redis.Conn) string {
	s, err := redis.String(rc.Do("GET", key))
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
	return s
}

func redisGetList(key string, rc redis.Conn) []string {
	s, err := redis.Strings(rc.Do("LRANGE", key, 0, -1))
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
	return s
}

func main() {
	rc := redisConnection()

	defer rc.Close()

	key := "KEY"
	val := "VALUE"
	redisSet(key, val, rc)
	s := redisGet(key, rc)
	fmt.Println(s)

	key = "LIST"
	vallist := []string{"VALUE1", "VALUE2", "VALUE3"}
	redisSetList(key, vallist, rc)
	sl := redisGetList(key, rc)
	fmt.Println(sl)
	fmt.Println(sl[0])
	fmt.Println(sl[1])
	fmt.Println(sl[2])
}


上一篇
Day 27 : 測試 - 在 Golang 寫測試
下一篇
Day 29 : 部署 - 把 Gamilms 放上 Docker
系列文
遺留系統重構 - 從 MEAN Stack 轉移到 go-vue-postgresql30

尚未有邦友留言

立即登入留言