如何使用Go语言连接到Redis并进行基本操作
解决问题:连接到Redis,使用基本操作
首先得安装redis的客服端
连接到Redis
- 安装第三方包 Redigo
go get github.com/garyburd/redigo/redis
- 连接到Redis
//连接到redis,判断是否连接错误 conn,err:=redis.Dial("tcp", "127.0.0.1:6379");if err!=nil{ fmt.Println("连接错误") }; defer conn.Close() //关闭连接
redis.Dial( )详解
函数原型
func Dial(network, address string, options ...DialOption) (Conn, error){....}
参数解析
network:网络协议 "tcp”
address:redis的地址 “127.0.0.1:6379”
options:可以添加一些关于redis的操作redis.DialDatabase(1) //选择数据库
redis.DialPassword(“xxxx”)) //设置redis的密码
基本操作
- 写入数据
函数原型
Do(commandName string, args ...interface{}) (reply interface{}, err error)
具体代码
// SET 为添加操作 username 键值 SmartZou 值 _ , err := conn.Do("SET", “username”, "SmartZou");if err!=nil{ fmt.Println(err) }
- 读取数据
具体代码
// GET 为获取操作 username 键值 _ , err := conn.Do("SET", “username”);if err!=nil{ fmt.Println(err) }
- 删除数据
具体代码
// DEL为获取操作 username 键值 _ , err := conn.Do("DEL", “username”);if err!=nil{ fmt.Println(err) }
- 判断key是否存在
具体代码
//EXISTS 为判断操作 username 键值 使用redis.Boll()将值转换为Bool exists, err := redis.Bool(conn.Do("EXISTS", "username")); if err!=nil{ fmt.Println(err) }
- 给定一个kv的过期时间
具体代码
//SET 操作 EX 表示设定了过期时间 5为5s _, err = conn.Do("SET", "username", "userinfo", "EX", "5"); if err!=nil{ fmt.Println(err) }
hash操作
同样还是使用conn.Do( )
- hash读取
具体代码//hset使用hash的添加 userinfo 数据库名 username 键值 SmartZou值 //这里也可以不使用redis.String() val , err = redis.String(conn.Do("hset", "userinfo", "username", "SmartZou"));if err != nil{ fmt.Println(err) }
- hash获取
具体代码//hset使用hash的获取 userinfo 数据库名 username 键值 val , err = redis.String(conn.Do("hget", "userinfo", "username"));if err != nil{ fmt.Println(err) }
总结
明天看看redis读取的并发 Nerver Give up!!
2020.6.18 0:32