简易--go语言redis连接池
时间:2022-05-05
本文章向大家介绍简易--go语言redis连接池,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package Redis_DB
import (
"github.com.Go-Redis/github.com/alphazero/Go-Redis"
"glog-master"
)
// 链接池结构体
type STRedis_Pool struct {
Redis_Client redis.Client
}
// 链接池的最大链接数量
const MAX_REDIS_POOL_SIZE int = 100
// 全局内存数据库变量
var REDISPool chan *STRedis_Pool
// 获取链接指针函数
func GetREDIS() *STRedis_Pool {
if REDISPool == nil {
REDISPool = make(chan *STRedis_Pool, MAX_REDIS_POOL_SIZE)
}
if len(REDISPool) == 0 {
go func() {
for i := 0; i < MAX_REDIS_POOL_SIZE/2; i++ {
redistmp := new(STRedis_Pool)
var err error
// 测试
spec := redis.DefaultSpec().Host("127.0.0.1").Port(6379).Password("test")
redistmp.Redis_Client, err = redis.NewSynchClientWithSpec(spec)
if err != nil {
glog.Info("error on connect redis server", err)
continue
}
putREDIS(redistmp)
}
}()
}
return <-REDISPool
}
//存储指针函数
func putREDIS(conn *STRedis_Pool) {
if REDISPool == nil {
REDISPool = make(chan *STRedis_Pool, MAX_REDIS_POOL_SIZE)
}
if len(REDISPool) == MAX_REDIS_POOL_SIZE {
//conn.Redis_Client.Close()
return
}
REDISPool <- conn
}
使用的redis第三方库不一样,可能没有基础的连接池的,以上是简单测试;
- 2018年小程序的红利趋势预测,懂的来……或许你将成为下个富翁
- VUE 入门基础(6)
- 五年换4高管,6000员工裁95%剩300人,王健林为何抛弃万达网科?
- Android Permission中英对照
- 你知道人脸识别技术是如何实现的吗?
- WordPress REST API 定制化输出
- ASP.NET MVC的Action Filter
- Android LayoutInflater详解
- 在Android中实现service动态更新UI界面
- VUE 入门基础(5)
- Android的UI设计与后台线程交互
- 更强悍的Silverlight: WCF RIA Services
- Java究竟该怎么学?文末有彩蛋!
- python-IDLE清屏和标记行数,其他推荐
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python第三十课--异常(with as操作)
- linux系统运维企业常见面试题集合(二)
- Linux系统Shell编程—企业生产案例(一)
- python第三十一课--递归(1.简单递归函数的定义和使用)
- python第三十一课--递归(2.遍历某个路径下面的所有内容)
- python第三十一课--递归(3.递归的弊端)
- python第三十二课——栈
- linux系统运维企业常见面试题集合(三)
- python第三十二课——队列
- python第三十四课——1.匿名函数的定义和使用
- python第三十四课——2.匿名函数配合容器函数的使用
- 专家专栏|使用agent2自定义插件采集通过MQTT协议发送的数据
- Linux系统双网卡绑定配置教程
- python第三十五课——生成器
- python第三十六课——1.可迭代对象