go语言操作Redis详细步骤

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言操作Redis详细步骤相关的知识,希望对你有一定的参考价值。

前言:导入开源库

 操作字符串

package main

import (
	"fmt"

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

func main() 
	//通过 go 向 redis 写入和读取数据
	//1、连接到redis
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil 
		fmt.Println("redis.Dial err=", err)
		return
	

	//4、关闭redis连接
	defer conn.Close()

	//2、通过go 向redis写入数据 string [key-val]
	_, err = conn.Do("Set", "name", "tom哈哈")
	if err != nil 
		fmt.Println("redis.Dial err=", err)
		return
	

	//3、通过go 向redis读取数据 string [key-val]
	r, err := redis.String(conn.Do("Get", "name"))
	if err != nil 
		fmt.Println("redis.Dial err=", err)
		return
	

	fmt.Println("操作ok", r)

操作hash

  • 一个一个操作

package main

import (
	"fmt"

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

func main() 
	//通过 go 向 redis 写入和读取数据
	//1、连接到redis
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil 
		fmt.Println("redis.Dial err=", err)
		return
	

	//4、关闭redis连接
	defer conn.Close()

	//2、通过go 向redis写入数据
	_, err = conn.Do("HSet", "user01", "name", "john")
	if err != nil 
		fmt.Println("HSet err=", err)
		return
	

	_, err = conn.Do("HSet", "user01", "age", 18)
	if err != nil 
		fmt.Println("HSet err=", err)
		return
	

	//3、通过go 向redis读取数据
	//因为返回 r 是 interface
	//因为 name 对应的值是string,因此我们需要转换
	r1, err := redis.String(conn.Do("HGet", "user01", "name"))
	if err != nil 
		fmt.Println("HGet err=", err)
		return
	

	r2, err := redis.Int(conn.Do("HGet", "user01", "age"))
	if err != nil 
		fmt.Println("HGet err=", err)
		return
	

	fmt.Printf("操作ok r1=%v r2=%v", r1, r2)

  • 同时操作多个

package main

import (
	"fmt"

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

func main() 
	//通过 go 向 redis 写入和读取数据
	//1、连接到redis
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil 
		fmt.Println("redis.Dial err=", err)
		return
	

	//4、关闭redis连接
	defer conn.Close()

	//2、通过go 向redis写入数据
	_, err = conn.Do("HMSet", "user01", "name", "john", "age", 18)
	if err != nil 
		fmt.Println("HSet err=", err)
		return
	

	//3、通过go 向redis读取数据
	//因为返回 r 是 interface
	//因为 name 对应的值是string,因此我们需要转换
	r1, err := redis.Strings(conn.Do("HMGet", "user01", "name", "age"))
	if err != nil 
		fmt.Println("HGet err=", err)
		return
	

	fmt.Printf("操作ok r1=%v", r1)

以上是关于go语言操作Redis详细步骤的主要内容,如果未能解决你的问题,请参考以下文章

Go开源宝藏Go 语言操作 Redis

Go语言操作Redis

Go语言操作Redis

Go语言操作Redis

Go语言操作Redis

你知道的Go切片扩容机制可能是错的