数据库连接池的选择 | 实现
Posted 无生活不技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库连接池的选择 | 实现相关的知识,希望对你有一定的参考价值。
本文是数据库连接池的选择与实现系列第二篇,本文是基于上篇文章(),为了做一个通用一点的连接池,以同样的代码开发模式来实现对各种数据库的连接。
本篇还是利用Java语言简单实现高可用的Redis对象池,这里我没有从最底层开始造轮子,而是使用了Redis Java客户端本身自带的连接池工具类:
JedisPool,
JedisCluster,...
它已经进行了很好的封装(实质上它们底层就是利用common-pool2中
GenericObjectPoolConfig,
GenericObjectPool
等类来实现的
这里,只是简单利用上篇文章同样的方式做了一下封装和实现。
1.第一步,写默认配置类Interface
2.第二步,编写Redis连接池
RedisConnectionPool
类结构如下:主要就是构造方法,传入不同的参数核心就是调用JedisPool
当然针对环境我们这里还可以用同样的方式实现如:
RedisClusterConnPool : Redis 集群连接池
RedisShardedConnPool : Redis分片连接池
RedisSentinelConnPool:Redis哨兵连接池
这里用RedisClusterConnPool来举例,其他类似写法:
类结构如下:同样类中主要就是构造方法,传入不同的参数核心就是调用JedisCluster
3.第三步:接下来写一个demo,演示一下:
这里简单写入两条数据到列表中,然后从Redis中获取,并打印,这里使用的jedis版本为2.9.0
Demo类的结构如下:
运行打印结果如下:
总结:等这个系列写完会把整个系列demo放到GitHub中,可以自己重新实现或者参考一下demo,经过完善就可以放到生产环境中,但这并不代表,这样的实现方式效率和性能就是好的,所以最终的好坏,还是要根据自己环境亲自测验,自己动手实践完后,才知其中的优劣。
以上是关于数据库连接池的选择 | 实现的主要内容,如果未能解决你的问题,请参考以下文章