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
	}
	defer conn.Close()   //延迟关闭

	//2.通过go向redis写入数据hset map
	_,err=conn.Do("HMSet","user002","name","孙悟空","age",500)
	if err!=nil{
		fmt.Println("hset err=",err)
		return
	}

	//_,err=conn.Do("HSet","user001","age",40)
	//if err!=nil{
	//	fmt.Println("hset err=",err)
	//	return
	//}


	//3.通过go向redis读取数据string[key-val]
	//redis.Strings--->这里重点是redis.Strings---是复数“Strings”
	r,err:=redis.Strings(conn.Do("HMGet","user002","name","age"))

	//r,err:=redis.Int(conn.Do("Get","age"))
	if err!=nil{
		fmt.Println("hget err=",err)
		return
	}


	for i,v:=range r{
		fmt.Printf("r[%d]=%s\n",i,v)
	}


	//r1,err:=redis.Int(conn.Do("HGet","user001","age"))
	//
	r,err:=redis.Int(conn.Do("Get","age"))
	//if err!=nil{
	//	fmt.Println("hget err=",err)
	//	return
	//}

	/*
	1.因为返回r是interfce{},name对应的值是string,因此我们
	需要转换nameString,redis.String()
	*/

	//fmt.Printf("操作ok:r=%v r2=%v\n",r,r1)    //查询结果:操作ok:tom and jerry


}

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐