连接池

Python DBUtils 连接池对象 (PooledDB)

喜你入骨 提交于 2019-12-04 09:02:08
数据处理用到 mysql, 需要在多进程中的多线程中使用 mysql 的连接 实现: 使用 DBUtils 中的 PooledDB 类来实现. 自己写一个类, 继承 PooledDB 类, 这样就能使用到 PooledDB 中的其它常用的方法. 使用单例模式, 确保整个应用服务中只有一个连接池对象. 使用: 可以定义全局变量初始化连接池对象, 在别的地方获取mysql连接使用. demo: # coding: utf-8 import pymysql import functools from seemmo.common.time_func import now_time, today from conf.config import DB_HOST, DB_PORT, DB_USER, DB_NAME, DB_CHARSET from pymysql.cursors import DictCursor from DBUtils.PooledDB import PooledDB # 获取加密的mysql密码 from seemmo.common.utils import get_pwd DB_PASSWD = get_pwd("mysql_pwd") class MysqlPool(PooledDB): __instance = None __pool = None def _

Jedis使用

孤者浪人 提交于 2019-12-04 08:48:28
一.jedis使用 jedis是Redis官方首选的java客户端开发包 1.下载jedis的jar包 common-pools2-2.3.jar jedis-2.7.0.jar 2.eclipse下新建java工程,lib下添加添加jedis的jar包(也可以在pom.xml文件中添加jedis的依赖包) 3.新建java类,进行jedis测试 1)单实例测试 2)连接池连接 public void JedisDemo1(){ @Test /*** 使用连接池方式连接 ***/ public void demo1(){ //获得连接池的配置对象 JedisPoolConfig config = new JedisPoolConfig(); // 获得最大连接数 config.SetMaxTotal(30); // 获得最大空闲连接数 config.setMaxIdle(10); // 获得连接池: JedisPool jedisPool = new JedisPool(config,XXX.XXX.XX.XX,6379); //获得核心对象 Jedis jedis = null; try{ //通过连接池获得连接 jedis = jedisPool.getResource(); jedis.set("name","卧龙boy"); String value = jedis.get

Druid连接池的简单使用

余生颓废 提交于 2019-12-04 08:23:12
第一步:导入两个jar包 第二步:创建一个properties文件 第三步:在properties文件中添加配置:连接驱动、数据库名字、数据库用户名和密码等 driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql:///ManageSys username=root password=admin123 initialSize=5 maxActive=10 maxWait=3000 maxIdle=6 minIdle=3    第四步:创建连接池对象 import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class JdbcUtil

hibernate.cfg.xml

谁说我不能喝 提交于 2019-12-04 06:59:32
配置JDBC的连接: <!--配置数据库的驱动程序,Hibernate在连接数据库时,需要用到数据库的驱动程序--> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!--设置数据库的连接url:jdbc:mysql://localhost/hibernate,其中localhost表示mysql服务器名称,此处为本机, hibernate是数据库名--> <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</hibernate> <!--连接数据库是用户名--> <property name="hibernate.connection.username">root</property> <!--连接数据库是密码--> <property name="hibernate.connection.password">123456</property> <!--数据库连接池的大小--> <property name="hibernate.connection.pool.size">20</property> 2.配置c3p0连接池: <!-

带你手写一个数据库连接池

南楼画角 提交于 2019-12-04 04:38:23
1.定义一个连接池接口 import java.sql.Connection; /** * 数据库连接池接口 */ public interface DbPool { /** * 连接池初始化 */ void init(); /** * 获取一个连接 * * @return */ Connection getConnection(); /** * 释放一个连接 * * @param connection */ void releaseConnection(Connection connection); /** * 销毁连接池 */ void destroy(); } 2.定义一个连接池的实现 import org.springframework.scheduling.annotation.Scheduled; import java.sql.Connection; import java.sql.SQLException; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; /** * 数据库连接池实现 */ public class DbPoolImpl

Swoole MySQL 连接池的实现

我们两清 提交于 2019-12-03 23:50:31
开始今天的文章,这篇文章实现了 Swoole MySQL 连接池,代码是在《Swoole RPC 的实现》文章的基础上进行开发的。 先回顾上篇文章的内容: 实现了 HTTP / TCP 请求 实现了 同步 / 异步 请求 分享了 OnRequest.php、OnReceive.php 源码 业务逻辑 Order.php 中返回的是假数据 本篇文章主要的功能点: 业务逻辑 Order.php 中返回 MySQL 数据库中的数据。 Task 启用了协程 支持 主/从 数据库配置 实现数据库连接池 实现数据库 CURD 代码 Order.php <?php if (!defined('SERVER_PATH')) exit("No Access"); class Order { public function get_list($uid = 0, $type = 0) { //TODO 业务代码 $rs[0]['order_code'] = '1'; $rs[0]['order_name'] = '订单1'; $rs[1]['order_code'] = '2'; $rs[1]['order_name'] = '订单2'; $rs[2]['order_code'] = '3'; $rs[2]['order_name'] = '订单3'; return $rs; } } 修改成:

python redis的连接及相关操作

北战南征 提交于 2019-12-03 22:40:59
1、redis连接、及存取值 import redis r = redis.Redis(host='192.168.2.22',port=6379,db=2,password= 'redis') r.set('name','Delia') # 在redis里面放置对应的key,value v = r.get('name') # 获取key值对应的value值 print(v) redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。 import redis pool = redis.ConnectionPool(host='192.168.2.22', port=6379, db=2, password='redis') r = redis.Redis(connection_pool=pool) r.set('name','Delia') # 在redis里面放置对应的key,value v = r.get('name') # 获取key值对应的value值 print(v) 输出结果里面的b代表的是二进制 2、批量存取值 import redis pool =

JDBC使用 C3P0连接池 demo

孤街浪徒 提交于 2019-12-03 21:24:01
C3P0连接池 Demo-手动配置使用 public void demo(){ // 获得连接: Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 创建连接池: ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 设置连接池的参数: dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql:///test"); dataSource.setUser("root"); dataSource.setPassword("hello"); dataSource.setMaxPoolSize(20); dataSource.setInitialPoolSize(3); // 获得连接: conn = dataSource.getConnection(); // 编写Sql: String sql = "select * from user"; // 预编译SQL: pstmt = conn.prepareStatement(sql); // 设置参数 // 执行SQL: rs =

Swoole Redis 连接池的实现

江枫思渺然 提交于 2019-12-03 21:11:05
这篇文章仅仅只实现一个 Redis 连接池,篇幅就太少了,顺便将前几篇整合一下。 Demo 中大概包含这些点: 实现 MySQL 连接池 实现 MySQL CURD 方法的定义 实现 Redis 连接池 实现 Redis 方法的定义 满足 HTTP、TCP、WebSocket 调用 提供 Demo 供测试 调整 目录结构 HTTP 调用: 实现 读取 MySQL 中数据的 Demo 实现 读取 Redis 中数据的 Demo 640?wx_fmt=png TCP 调用: 实现 读取 MySQL 中数据的 Demo 实现 读取 Redis 中数据的 Demo 640?wx_fmt=png WebSocket 调用: 实现 每秒展示 API 调用量 Demo 640?wx_fmt=gif 目录结构 ├─ client │ ├─ http │ ├── mysql.php //测试 MySQL 连接 │ ├── redis.php //测试 Redis 连接 │ ├─ tcp │ ├── mysql.php //测试 MySQL 连接 │ ├── redis.php //测试 Redis 连接 │ ├─ websocket │ ├── index.html //实现 API 调用量展示 ├─ controller │ ├─ Order.php //实现 MySQL CURD │ ├─

压测 swoole_websocket_server 性能

青春壹個敷衍的年華 提交于 2019-12-03 20:59:31
概述 收到读者提问 “使用 Swoole 开发的群聊功能,想知道并发情况,也就是想压测下 QPS,一直未找到方法 ...” 对 swoole_http_server 压测,咱们可以使用 Apache 的 ab 命令。 对 swoole_websocket_server 压测,使用 ab 命令是不能压测的,我从网上一直也没找到合适的方法,看官方提供的代码 benchmark/async.php 中,使用的异步模块 swoole\http\client 方法进行压测的,但在 Swoole 4.3 版本就移除了异步模块,让使用 Coroutine 协程模块。 在本地我用 Coroutine 协程实现了一下, 测的差不多的时候,一直不确定是否正确,就在 segmentfault 发了个提问,没想到韩老师回答了,'如果的如果'老师也回答了,非常感谢两位老师的答案,然后整理出文章分享给大家。 测试机 Mac 上安装的 Parallels Desktop 虚拟机 系统:Ubuntu 16.04.3 LTS 内存: 640?wx_fmt=png 数量:1 核数:2 CPU: 640?wx_fmt=png 数量:1 大小:2G Server 代码 <?php class Server { private $serv; public function __construct() { $this-