连接池

lua-resty-redis客户端连接池使用

╄→гoц情女王★ 提交于 2019-12-02 06:29:47
set_keepalive syntax: ok, err = red:set_keepalive(max_idle_timeout, pool_size) 将当前redis链接放入ngx_lua cosocket链接池,可以设置连接的 最大空闲时间 和 每个nginx工作进程的池的最大数 如果成功返回1,如果错误返回nil,并返回错误描述 注: 这个方法用户替代close方法,调用该方法后,redis链接变为关闭状态,除connect()外,当前链接的后续操作都将返回 已关闭 的错误 get_reused_times syntax: times, err = red:get_reused_times() 该方法用于返回当前连接被 成功重用的次数, 如果出现错误返回nil,并返回错误描述 如果链接不是来自链接池,此方法返回0(及链接从未被重用,及新建连接);如果来自链接池返回值始终大于0;因此该方法可以用于 判断当前连接是否来自连接池。 能正确使用链接池的redis connect 方法 function connect(host, port, passwd) local red = redis:new() red:set_timeout(1000) local ok, err = red:connect(host, port) if not ok then logs.error(

node.js操作MySQL数据库

北城余情 提交于 2019-12-02 06:16:32
MySQL数据库作为最流行的开源数据库。基本上是每个web开发者必须要掌握的数据库程序之一了。 基本使用 node.js上,最受欢迎的mysql包就是mysql模块。 npm install mysql 然后在js脚本里面直接引用进来 var mysql = require('mysql'); 配置mysql的数据库连接。 var connection = mysql.createConnection({ host : 'ip', user : '用户名', password : '密码', database : 'dbname' });connection.connect(); 这样就拿到了一个连接。 然后就可以愉快的进行各种curd操作了。 node.js对数据库的curd都在query这个方法里面。这点和ado.net有很大的区别。 你的所有的操作,都从query的回调函数里面获得结果 connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); 连接池操作 在单机软件中,我们之间使用简单获得一个连接,然后就行了。

SpringBoot11 之Druid连接池

徘徊边缘 提交于 2019-12-02 06:09:12
Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。 业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分析功能,所以这也是大家都选择使用它的原因。 下面来说明如何在 Spring Boot 中配置使用Druid 1、添加Maven依赖 (或jar包) <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.18</version> </dependency> 2、配置数据源相关信息 # 数据库访问配置 # 主数据源,默认的 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 # 下面为连接池的补充设置

springboot整合redis(注解形式)

六月ゝ 毕业季﹏ 提交于 2019-12-02 06:06:22
一.背景 基于的Spring Boot的版本是2.1.3 二.整合 1.添加redis相关的maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.在application.properties加入redis的相关配置 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空),我的是123456# spring.redis.password= spring.redis.password=123456 # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=200 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.pool.max-idle=10 # 连接池中的最小空闲连接

jedis的连接池

↘锁芯ラ 提交于 2019-12-02 04:39:19
1、需要先打开虚拟机,并开启Linux系统的端口号:6379: 其中,第一行代码为修改字符编码格式,解决SSH中文乱码问题。 2、开启redis: 3、利用连接池实现数据的存取: (1)代码实现: import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisDemo { public void test(){ //对连接池进行配置 JedisPoolConfig jedisPoolConfig=new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(30);//最大闲置个数 jedisPoolConfig.setMinIdle(10);//最小闲置个数 jedisPoolConfig.setMaxTotal(50);//最大连接数 //创建一个redis连接池 JedisPool jedisPool=new JedisPool(jedisPoolConfig,"192.168.204.128",6379); //从连接池中获取redis的连接资源 Jedis jedis=jedisPool.getResource(); /

解决Tomcat数据连接池无法释放

让人想犯罪 __ 提交于 2019-12-02 04:29:54
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。 今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。 简单分析了一下,每次Reload一下就能解决无法登录的情况,自然而然就想到是不是session有问题呢?于是到Tomcat的manager界面看了下,发现并没有出现session粘滞暴涨的情况。 本来可以打开jconsole看看的,正好想起了之前用过的Tomcat检测工具:probe,于是直接从其他机器上scp了一个probe.war,丢到了webapps下面自动部署。 部署完之后,打开了probe网页管理后台发现smc项目的实时数据库连接数很高,而且只增不减!这个系统的数据池大小设置为200,此时已经是100+了,而且一直只升不降。好吧,当数据连接数达到200时,问题肯定会再次出现的。 于是我将这个问题告诉了小毛,要他自己去修改连接池释放机制(这里用的是项目单独设定的参数)。他说试过了,没有用,问下我有没有办法。 我这人记性一直欠佳,也很少去记忆一些参数设置,问我么?还我也只能问BD、GG了。。。

当压测数据压不上去时可能是哪些原因造成的

隐身守侯 提交于 2019-12-02 03:11:19
1、网络带宽 在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务端的处理能力上限。 2、 连接池 可用的连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。 (关于连接池的具体内容,可参考之前的博客: 性能测试:连接池和线程 ) 3、垃圾回收机制 从常见的应用服务器来说,比如Tomcat,因为java的的堆栈内存是动态分配,具体的回收机制是基于算法,如果新生代的Eden和Survivor区频繁的进行Minor GC,老年代的full GC也回收较频繁,那么对TPS 也是有一定影响的,因为垃圾回收其本身就会占用一定的资源。 4、 数据库配置 高并发情况下,如果请求数据需要写入数据库,且需要写入多个表的时候,如果数据库的最大连接数不够,或者写入数据的SQL没有索引没有绑定变量,抑或没有主从分离、读写分离等, 就会导致数据库事务处理过慢,影响到TPS。 5、通信连接机制 串行、并行、长连接、管道连接等,不同的连接情况,也间接的会对TPS造成影响。 (关于协议的连接,可参考之前的博客: HTTP协议进阶:连接管理 ) 6、 硬件资源(服务器 和 压测机) 包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O

springBoot mysql时区设置

匆匆过客 提交于 2019-12-02 02:54:25
# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://192.168.10.25:3306/rm-ispd-flvcat?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true url: jdbc:mysql://192.168.111.147:3306/rm-ispd-fuwai0920?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true username: root password: 123 # Tomcat datasource specific settings # org.apache.tomcat.jdbc.pool.DataSource org.apache.tomcat.jdbc.pool.PoolProperties

数据库连接池clearpool(java实现)详解

主宰稳场 提交于 2019-12-02 00:05:54
clearpool的maven项目托管在 https://github.com/xionghuiCoder/clearpool ,同时也可以在 http://www.oschina.net/p/clearpool 上了解它的简单介绍。 首先大家可能会问,现在开源社区已经有了很多数据库连接池:c3p0、proxool、dbcp、bonecp、druid和tomcat_jdbc等,我们还需要重新发明轮子么?是的,上面这些连接池都非常优秀,并且都有自己优点:比如高并发时druid和tomcat_jdbc近乎完美的性能,再比如proxool和druid的监控功能;然而它们并不是完美的,比如性能是否还能再提升、如何管理分布式数据库、如何支持分布式事务。好的,下面就来介绍下clearpool以及它是如何支持这些功能的。 1、如何使用clearpool clearpool提供的接口类为ClearPoolDataSource.java。 这里说下clearpool和其它数据库池的不同的地方: 1)它放弃了最小连接池数(min-pool-size),取而代之的是核心连接池数(core-pool-size),类似于java线程池ThreadPoolExecutor; 2)它不提供返回真实连接的方法,ClearPoolDataSource.java的getConnection(

jedis代码操作

谁说我不能喝 提交于 2019-12-01 23:23:03
一、jedis快速入门 * Jedis: 一款java操作redis数据库的工具. * 使用步骤: 1. 下载jedis的jar包 2. 使用 //1. 获取连接 Jedis jedis = new Jedis("localhost",6379); //2. 操作 jedis.set("username","zhangsan"); //3. 关闭连接 jedis.close(); --------------------- package cn.itcast.jedis.test; import org.junit.Test; import redis.clients.jedis.Jedis; public class JedisTest { @Test public void test1(){ Jedis jedis = new Jedis("localhost", 6379); jedis.set("username","zhangsan"); jedis.close(); } } 二、Jedis操作各种redis中的数据结构 1、字符串类型 string set get //1. 获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口 //2. 操作 //存储 jedis.set("username",