我是靠谱客的博主 优雅身影,这篇文章主要介绍go redis之redigo的使用,现在分享给大家,希望可以做个参考。

本文主要介绍了go redis之redigo的使用,分享给大家,具体如下:

安装

go-redis 三方库为我们封装了很多函数来执行 Redis 命令,而 redigo 三方库只有一个 Do 函数执行 Redis 命令,更接近使用 redis-cli 操作 Redis。
go-redis 支持连接哨兵及集群模式的Redis

复制代码
1
2
go get github.com/gomodule/redigo go get github.com/go-redis/redis/v8

链接Redis

复制代码
1
2
3
4
5
6
7
8
9
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类型操作

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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) }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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)     } }

设置过期时间

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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操作

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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表

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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连接池

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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的使用的文章就介绍到这了,更多相关go redis redigo内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是优雅身影最近收集整理的关于go redis之redigo的使用的全部内容,更多相关go redis之redigo内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(108)

评论列表共有 0 条评论

立即
投稿
返回
顶部