发布时间:2024-06-30 19:01
本文主要介绍了go redis之redigo的使用,分享给大家,具体如下:
go-redis 三方库为我们封装了很多函数来执行 Redis 命令,而 redigo 三方库只有一个 Do 函数执行 Redis 命令,更接近使用 redis-cli 操作 Redis。
go-redis 支持连接哨兵及集群模式的Redis
go get github.com/gomodule/redigo go get github.com/go-redis/redis/v8
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() }
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)
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) }
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) }
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
在线下单系统php源码,PIMS在线订单管理系统v4.2.9
2022年windows的Visual Studio 安装后初始配置
次世代游戏建模人的红利期真要来了,3D角色建模价格竟高达100万一个,元宇宙高薪抢占人才
Java语法之多态、抽象类、引用型的数据类型转换、Object类的使用
各种机器学习算法分类器,线性回归——Python代码(KNN,MLP,SVM,随机森林,RF,GBDT)
servlet和java区别_JavaWeb中的jsp和servlet的区别
html中el日期格式化,【CSS】element-ui中的el-date-picker组件中某一日期上方多渲染一个字?...