2022/02/17

redis 链接池

最近公司工作还是有点忙的,学的慢了点~~~~,到这里,go语言基本是学完了基础篇了。

下面做项目增强码力了!

package mainimport ("fmt""github.com/garyburd/redigo/redis"
)/*redis 链接池1.实现初始化一定数量的链接,放入到链接池2.当GO需要操作Redis时,直接从Redis链接池取出链接即可3.这样可以节省临时获取Redis链接的时间,从而提高效率var pool *redis.Poolpool = &redis.Pool{MaxIdle:     8,   //最大空闲链接数MaxActive:   0,   //表示和数据库的最大连接数,0表示没有限制,上线由空闲链接决定IdleTimeout: 100, //最大空闲时间Dial: func() (redis.Conn, error) { //初始化链接的代码,链接哪个ip的redisreturn redis.Dial("tcp", "localhost:6379")},}c := pool.Get() //从链接池中取出一个链接pool.Close()    //关闭链接池后,就不能再从链接池中再取链接
*/
//定义一个全局的pool
var pool *redis.Poolfunc init() { //当启动程序时,就初始化链接池pool = &redis.Pool{MaxIdle:     8,   //最大空闲链接数MaxActive:   0,   //表示和数据库的最大连接数,0表示没有限制,上线由空闲链接决定IdleTimeout: 100, //最大空闲时间Dial: func() (redis.Conn, error) { //初始化链接的代码,链接哪个ip的redisreturn redis.Dial("tcp", "localhost:6379")},}
}func main() {//先从pool取出一个链接conn := pool.Get()defer conn.Close()//放入数据_, err1 := conn.Do("Set", "name", "Levi")if err1 != nil {fmt.Println("set err , err = ", err1)return}//取出数据ret1, err2 := redis.String(conn.Do("Get", "name"))if err2 != nil {fmt.Println("Get err , err = ", err2)return}fmt.Println("Get success , name = ", ret1)//如果我们要从pool取出链接,一定要保证链接池是没有关闭pool.Close()/*这里只是个引用,在Do的时候才会真正去取*/conn2 := pool.Get()fmt.Println("conn2 = ", conn2) //output: conn2 =  {0xc0000507a0}ret2, err3 := redis.String(conn2.Do("Get", "name"))if err3 != nil {fmt.Println("Get err , err = ", err3) //Get err , err =  redigo: get on closed poolreturn}fmt.Println("Get success , name = ", ret2)}

GO语言学习之路26相关推荐

  1. 12天学好C语言——记录我的C语言学习之路(Day 12)

    12天学好C语言--记录我的C语言学习之路 Day 12: 进入最后一天的学习,用这样一个程序来综合考量指针和字符串的关系,写完这个程序,你对字符串和指针的理解应该就不错了. //输入一个字符串,内有 ...

  2. Go语言学习之路(二)

    Go语言学习之路(二) 面对对象编程思想 抽象 封装 继承 接口 文件 命令行参数 Json 序列化 反序列化(unmarshal) 单元测试 Redis Redis简介 Redis基本使用 Go连接 ...

  3. C语言-学习之路-01

    C语言学习之路-01 目录 关键字 数据类型 常量 变量 声明和定义 进制 sizeof关键字 整型:int short.int.long.long long 字符型:char ASCII对照表 转义 ...

  4. C语言学习之路--计算机系统组成以及工作原理,进制之间的转换和机器数及其表示范围

    目录 一.前言 二.计算机系统组成以及工作原理简介 1.硬件系统基本组成原理及工作原理 2.硬件各部分详解 1.运算器 2.控制器 CPU 3.存储器 1.内存储器 2.外存储器 3.拓展 4.存储器 ...

  5. Go语言学习之路——Go语言简介

    本文首发于我的博客 很多人将GO语言称为21世纪的C语言,因为GO不仅拥有C的简洁和性能,而且还很好的提供了21世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东 ...

  6. C语言学习之路--函数,从知识到实战

    目录 一.前言 二.函数是什么? 三.C语言中函数的分类 1.库函数 1.为什么会有库函数? 2.如何学习库函数? 3.学习库函数举例 1.strcpy 2.memset 3.库函数学习工具总结 2. ...

  7. GO语言学习之路11

    2022/02/02package mainimport ("fmt""math/rand""time" )func test(arr *[ ...

  8. C语言学习之路--C语言中的格式输出

    一.前言 在我们初学C语言的过程中,会有一些类似%d之类的格式输出,我在此做个汇总,供大家学习. 二.分类 1.%u 十进制无符号整数. 2.%f 表示输出浮点数. 可以通过输出格式说明符来指定精确到 ...

  9. R语言学习之路——进入R的大门

    数据分析之R语言 基础统计指标 指标 描述 均值(mean) 即平均数,mean=1/n*sum(X1:Xn);均值能够利用所有已知信息,但是对异常值(极小或极大值)很敏锐: 中位数(median) ...

最新文章

  1. SparkSql常用命令操作
  2. 用程序算法做人生选择
  3. socket编程中read()、write()、recv()和send()
  4. 【转】一句话的设计模式
  5. ProxmoxVE(V5.2) 之 使用外部ceph存储(luminous)
  6. jenkins启动/重启/停止命令 改端口
  7. linux如何批量清理文件大小,Linux下自动清理超过指定大小文件的方法
  8. 怎么用命令启动服务器文件,linux启动服务器命令
  9. 无线传感网2-传感器布局方法
  10. 启动virt-manager报错:Failed to open /var/lib/dbus/machine-id
  11. Java工程带库编译运行
  12. 荔枝软件如何测试声音,荔枝如何测自己的声音 荔枝测自己的声音方法
  13. h5摄像头拍照上传php,H5调用摄像头拍照上传
  14. 不加群就可以提取QQ群成员
  15. ApacheCN 活动汇总 2019.8.3
  16. 如何利用 HBuilderX 制作图文混排的网页
  17. Cesium 加载地形数据
  18. PHP5.x时差问题
  19. [晕事]今天做了件晕事7
  20. 【Turtle绘图系列】超火皮卡丘大全,可爱到爆炸~

热门文章

  1. lucky的时光助理-2017.02
  2. 怎么给iOS项目打包
  3. A - Divisors POJ - 2992 (组合数C的因子数)数学—大数
  4. docker学习系列11 多阶段镜像构建
  5. unix 时间戳转化为 日期格式
  6. linux高亮 查日志
  7. MySQL的安装和基本操作
  8. 活动目录回收站之终极应用---Windows2008 R2 新功能系列之十一
  9. 运输层--TCP协议(2)
  10. java---多线程及线程的概念