连接池

redis

坚强是说给别人听的谎言 提交于 2020-01-13 18:57:28
目录 概念 什么是NOSQL NOSQL和关系型数据库比较 非关系型数据库的优势 关系型数据库的优势 总结 主流的NOSQL产品 什么是Redis 下载安装 命令操作 redis的数据结构 字符串类型:string 哈希类型:hash(map格式) 列表类型:list(linkedlist格式) 集合类型:set 有序集合类型:sortedset 通用命令 持久化 Java客户端:Jedis 概述 Jedis操作redis中的数据结构 字符串类型 string 哈希类型 hash(map格式) 列表类型 list(linkedlist格式) 集合类型 set 有序集合 sortedset jedis连接池: jedisPool jedis连接池工具类 案例 概念 简介: ​ 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。 概念: redis是一款高性能的NOSQL系列的非关系型数据库 什么是NOSQL NoSQL(NoSQL = Not Only SQL) ,意即“不仅仅是SQL”,是一项全新的数据库理念

node.js学习(四)-node.js连接池应用,代码示例

ぐ巨炮叔叔 提交于 2020-01-13 08:45:41
Pooling connections 连接池的创建 使用示例 释放连接池 connection.release() 使用连接池代码示例 var mysql = require("mysql"); var pool = mysql.createPool({ host:"localhost", user:"root", password:"root", port:3306, database:'nodesample' }) //直接操作sql语句----不推荐使用 /*var userGetSql = "SELECT * FROM userinfo"; pool.query(userGetSql,function(err,result){ if(err){ console.log('[UPDATE ERROR]-:',err.message); return; } console.log("-------INSERT-------"); console.log("UPDATE affectedRows:"+result); });*/ //共享连接语句---从连接池里面拿一个连接出来 pool.getConnection(function(err,connection){ connection.query("select * from userinfo",function(err

白盒用例测试程序/go实现

北城以北 提交于 2020-01-12 09:03:49
简单介绍一下白盒测试: 源码公开,清楚传参、返回值和处理逻辑; 我们在测试一个方法或者接口时,通过传入合法或者非法的参数,并且抽选一些具有代表性的值作为测试用的合法传参,通过模仿正常请求,检测方法或接口内部的异常。 周末没事,又想学习一下go,最近又老写bug,所以就想到用go写一个测试进程,实现白盒`用例`测试 用到的数据结构简单介绍一哈: 用Clinet表示一个正常的客服端, ClientPool是一个Client连接池,复用客户端与服务端的套接口连接( 即在http请求头中包含 `connection: keepAlive` ),减少了端口的开销,就可以实现100w的请求量;由于是在本地开启的服务端和客户端,如果使用短连接的话,将会有许多套接口处于` TIME_WAIT `状态,多到再无可用端口,客户端( 如将`MaxConnsPerHost`置为小于0的数值,当一次请求完成后,客服端就会主动关闭套接口 )和服务端( 如将`DisableKeepAlive` 为 false ,那么一定时间内客服端都没有发送消息给服务端,服务端将会主动关闭套接口;而将`DisableKeepAlive` 为 true的话,服务端也会在http请求应答发送完毕后,主动关闭连接 )的正常连接会受到影响从而影响了测试( 主动关闭的套接口状态会转为`TIME_WAIT`,一般情况下,在 `2ML时间内

Spring 配置文件详解 http://www.blogjava.net/hellxoul/archive/2011/11/19/364324.html

泪湿孤枕 提交于 2020-01-11 21:40:31
1.基本配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd "> <context:component-scan base-package="com.persia"> <!-- 开启组件扫描 --> </context:component-scan> <context:annotation-config> <!-

Spring集成jedis简单实例

浪尽此生 提交于 2020-01-11 10:09:34
jedis是redis的java客户端,spring将redis连接池作为一个bean配置。 redis连接池分为两种,一种是“redis.clients.jedis.ShardedJedisPool”,这是基于hash算法的一种分布式集群redis客户端连接池。 另一种是“redis.clients.jedis.JedisPool”,这是单机环境适用的redis连接池。 maven导入相关包: <!-- redis依赖包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> ShardedJedisPool 是redis集群客户端的对象池,可以通过他来操作ShardedJedis,下面是ShardedJedisPool的xml配置,spring-jedis.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=

Spring配置数据源(数据库连接池)

好久不见. 提交于 2020-01-11 04:55:45
Spring配置数据源(数据库连接池) 主要针对c3p0和durid连接池进行配置 数据源(连接池)的作用 数据源(连接池)是提高程序性能而出现的,事先实例化数据源,初始化部分连接资源,使用连接资源时从数据源中获取,使用完毕后将连接资源归还给数据源。 其基本的步骤如下 : 导入数据源的坐标和数据库驱动坐标 创建数据源对象 设置数据源的基本连接数据 使用数据源获取连接资源和归还连接资源 配置c3p0连接池 <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/数据库名"/> <property name="user" value="root"/> <property name="password" value="root"/> </bean> 配置druid连接池 <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name=

SpringMVC数据库连接配置大全

百般思念 提交于 2020-01-10 17:56:44
此文件中有dbcp、c3p0、druid三种配置方式 1. dbConfig.properties 文件 #----------------数据库连接基本配置--------------- #数据库驱动 dataSource.driverClassName=com.mysql.jdbc.Driver #数据库连接地址 dataSource.url=jdbc\:mysql\://127.0.0.1\:3306/qfx_activiti_test?characterEncoding\=UTF-8 #用户名 dataSource.userName=root #密码 dataSource.passWord=666666 #SQL查询,在将连接返回给调用者之前,用来验证从连接池取出的连接是否有效 dataSource.validationQuery=select 1 #----------------dbcp连接池配置----------------- #初始连接数量 dbcp.initialSize=5 #最大连接数量 dbcp.maxActive=50 #最小空闲连接数量 dbcp.minIdle =5 #最大空闲连接数量 dbcp.maxIdle=20 #最大等待连接时间(以毫秒计数,1000等于60秒) dbcp.maxWait=1000 #连接超时是否自动回收 dbcp

Spring Day02 IOC 注解开发

空扰寡人 提交于 2020-01-10 14:04:59
1.Spring配置数据源 1.1 数据源(连接池)的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等 开发步骤 ①导入数据源的坐标和数据库驱动坐标 ②创建数据源对象 ③设置数据源的基本连接数据 ④使用数据源获取连接资源和归还连接资源 1.2 数据源的手动创建 ①导入c3p0和druid的坐标 <!-- C3P0连接池 --> < dependency > < groupId > c3p0 </ groupId > < artifactId > c3p0 </ artifactId > < version > 0.9.1.2 </ version > </ dependency > <!-- Druid连接池 --> < dependency > < groupId > com.alibaba </ groupId > < artifactId > druid </ artifactId > < version > 1.1.10 </ version > </ dependency > ①导入mysql数据库驱动坐标 <!-- mysql驱动 --> < dependency > < groupId > mysql

SpringBoot整合SSM

大城市里の小女人 提交于 2020-01-10 10:02:28
SpringBoot整合SSM 请查看博客 SpringBoot介绍与使用 了解Spring基本介绍与使用 如何使用springboot来整合SSM 1.0 使用lombok 我们编写pojo时,经常需要编写构造函数和getter、setter方法,属性多的时候,就非常浪费时间,使用lombok插件可以解决这个问题: 在idea中安装lombok插件: 需要在maven中引入依赖: <dependency> <groupId>org.project.lombok</groupId> <artifactId>lombok</artifactId> </dependency> 然后可以在Bean上使用: @Data :自动提供getter 和setter 、hashCode、 equals、toString等方法 @Getter :自动提供getter方法 @Setter: 自动提供setter方法 @Slf4j:自动在bean中提供log变量,其实用的是slf4j的日志功能 2.1.整合SpringMVC 虽然默认配置已经可以使用SpringMVC了,不过我们有时候需要进行自定义配置。 日志级别控制: logging: level: com.jim: debug org.springfreamework: debug 2.1.1.修改端口 查看SpringBoot的全局属性可知

MySQL AutoCommit带来的问题

≯℡__Kan透↙ 提交于 2020-01-10 05:02:11
原创内容,转载请注明出处 http://www.cnblogs.com/wingsless/p/6803542.html 现象描述 测试中发现,服务A在得到了服务B的注册用户成功response以后,开始调用查询用户信息接口,却发现无法查询出任何结果。检查binlog发现,在查询请求之前,数据库确实已经完成了commit操作,并且可以在sqlyog等客户端工具中查询出正确的结果。 下面是这个流程的时序图: 问题出现在Server A向数据库发起查询的时候,返回的结果总是空。 问题分析 这个问题显然是一个事务隔离的问题,最开始的思路是,服务A所在的机器,其事务开启时间应该是在服务B的机器commit操作之前开启的,但是通过DEBUG日志分析connection的获取和提交时间,发现两个服务器之间不存在这样的关系,服务B永远是在服务A返回了正确的response之后才会调用数据库接口,进行getConnection操作,进而进行查询操作。 显然这并不能支持刚才的设想,但是结论一定是正确的,就是因为事务隔离级别导致了Server A读到的永远是快照,发生了可重复读。 后来调整了一下思路,发现MySQL还有一个特性就是AutoCommit,即默认情况下,MySQL是开启事务的,下面表格能说明问题,表1: 但是,如果AutoCommit不是默认开启呢?结果就会变成下面的表格,表2: