今天小编给大家分享一下go redis之redigo如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
安装
go-redis 三方库为我们封装了很多函数来执行 Redis 命令,而 redigo 三方库只有一个 Do 函数执行 Redis 命令,更接近使用 redis-cli 操作 Redis。
go-redis 支持连接哨兵及集群模式的Redis
go get github.com/gomodule/redigogo get github.com/go-redis/redis/v8
链接Redis
func main() { c, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("conn redis failed,", err) return } fmt.Println("redis conn success") defer c.Close()}
String类型操作
func main() { c, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("conn redis failed,", err) return } defer c.Close() _, err = c.Do("Set", "abc", 100) if err != nil { fmt.Println(err) return } r, err := redis.Int(c.Do("Get", "abc")) if err != nil { fmt.Println("get abc failed,", err) return } fmt.Println(r)}
func main() { c, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("conn redis failed,", err) return } defer c.Close() _, err = c.Do("MSet", "abc", 100, "efg", 300) if err != nil { fmt.Println(err) return } r, err := redis.Ints(c.Do("MGet", "abc", "efg")) if err != nil { fmt.Println("get abc failed,", err) return } for _, v := range r { fmt.Println(v) }}
设置过期时间
func main() { c, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("conn redis failed,", err) return } defer c.Close() _, err = c.Do("expire", "abc", 10) if err != nil { fmt.Println(err) return }}----------------------------或者这样也行do, err := client.Do("set", "name", "1111","EX",5)
List操作
func main() { c, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("conn redis failed,", err) return } defer c.Close() _, err = c.Do("lpush", "book_list", "abc", "ceg", 300) if err != nil { fmt.Println(err) return } r, err := redis.String(c.Do("lpop", "book_list")) if err != nil { fmt.Println("get abc failed,", err) return } fmt.Println(r)}
Hash表
func main() { c, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("conn redis failed,", err) return } defer c.Close() _, err = c.Do("HSet", "books", "abc", 100) if err != nil { fmt.Println(err) return } r, err := redis.Int(c.Do("HGet", "books", "abc")) if err != nil { fmt.Println("get abc failed,", err) return } fmt.Println(r)}
Redis连接池
var pool *redis.Pool //创建redis连接池func init(){ pool = &redis.Pool{ //实例化一个连接池 MaxIdle:16, //最初的连接数量 // MaxActive:1000000, //最大连接数量 MaxActive:0, //连接池最大连接数量,不确定可以用0(0表示自动定义),按需分配 IdleTimeout:300, //连接关闭时间 300秒 (300秒不使用自动关闭) Dial: func() (redis.Conn ,error){ //要连接的redis数据库 return redis.Dial("tcp","localhost:6379") }, }}func main(){ c := pool.Get() //从连接池,取一个链接 defer c.Close() //函数运行结束 ,把连接放回连接池 _,err := c.Do("Set","abc",200) if err != nil { fmt.Println(err) return } r,err := redis.Int(c.Do("Get","abc")) if err != nil { fmt.Println("get abc faild :",err) return } fmt.Println(r) pool.Close() //关闭连接池}
以上就是“go redis之redigo如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。