Go 操作 redis

发布于:2024-10-11 ⋅ 阅读:(26) ⋅ 点赞:(0)

前提

安装 redis 第三方库,参考go安装三方库

编程示例

写入读取操作字符串

代码

package main

import (
	"fmt"
	"github.com/gomodule/redigo/redis"
)

func main() {
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("redis.Dial err=", err)
		return
	}
	_, err = conn.Do("Set", "name", "tomjerry")
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	r, err := redis.String(conn.Do("Get", "name"))
	//nameString := r.(string)
	fmt.Println("操作ok,读取name 的值为", r)
}

运行

go run main.go 
go: warning: ignoring go.mod in $GOPATH /Users/zld/goproject
操作ok,读取name 的值为 tomjerry

写入读取操作哈希数据

package main

import (
	"fmt"
	"github.com/gomodule/redigo/redis"
)

func main() {
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("redis.Dial err=", err)
		return
	}
	_, err = conn.Do("HSet", "user01", "name", "john")
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	_, err = conn.Do("HSet", "user01", "age", 18)
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	r1, err := redis.String(conn.Do("HGet", "user01", "name"))
	//nameString := r.(string)
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	fmt.Println("操作ok,读取name 的值为", r1)
	r2, err := redis.String(conn.Do("HGet", "user01", "age"))
	//nameString := r.(string)
	if err != nil {
		fmt.Println("set err=", err)
		return
	}
	fmt.Println("操作ok,读取age 的值为", r2)
}
go run main.go 
go: warning: ignoring go.mod in $GOPATH /Users/zld/goproject
操作ok,读取name 的值为 john
操作ok,读取age 的值为 18

批量写入读取

package main

import (
	"fmt"
	"github.com/gomodule/redigo/redis"
)

func main() {
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("redis.Dial err=", err)
		return
	}
	_, err = conn.Do("HMSet", "user02", "name", "john", "age", "19")
	if err != nil {
		fmt.Println("HMSet err=", err)
		return
	}

	r, err := redis.Strings(conn.Do("HMGet", "user02", "name", "age"))
	//nameString := r.(string)
	if err != nil {
		fmt.Println("HMGet err=", err)
		return
	}
	fmt.Printf("r=%v\n", r)
	for i, v := range r {
		fmt.Printf("r[%d]=%s\n", i, v)
	}
}
go run main.go 
go: warning: ignoring go.mod in $GOPATH /Users/zld/goproject
r=[john 19]
r[0]=john
r[1]=19