怎么用Java实现redis连接池
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要介绍"怎么用Java实现redis连接池",在日常操作中,相信很多人在怎么用Java实现redis连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用
千家信息网最后更新 2024年11月19日怎么用Java实现redis连接池
这篇文章主要介绍"怎么用Java实现redis连接池",在日常操作中,相信很多人在怎么用Java实现redis连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用Java实现redis连接池"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1.Redis 客户端
1.1.Redis Desktop Manager
使用称手的工具,做起事来 事半功倍
,用 redis-cli
自然不错。我推荐一款我经常用的 Redis
可视化工具,Redis Desktop Manager
。
2.Redis 连接池
2.2.0.连接池
池技术被广泛使用在系统开发中,像
JDBC
连接池、线程池等。连连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。
在处理一个任务时,我们大多情况要在数毫秒级别就完成,如果重复创建、关闭资源,会占用较长时间和大量系统资源。
使用连接池优势
减少连接创建时间
连接在系统初始化时就创建完成,需要时直接从池中取用,减少了时间开销。
简化的编程模式
当使用连接池时,每一个单独的线程能够像创建了一个自己的 JDBC 连接一样操作。
受控的资源使用
连接池能够控制一个模块的资源占用率,不会让一个模块资源占用过高,导致整个系统崩溃。
2.1.Redis 连接池
2.1.1.前言引入
在以前没有开源连接池时,很多人自写连接池工具,简单来说就是创建一个集合,存放一批连接,动态维护着。保证每个连接都是有效的。
2.1.2.Redis 连接池
本教程涉及到的一些代码都是 Java 语言编写。
maven
依赖,引入 pom.xml
文件
pom.xml
redis.clients jedis 3.3.0
RedisUtil.java
public final class RedisUtil { //IP 地址 private static String ADDR = "127.0.0.1"; //端口号 private static int PORT = 6379; //redis 服务端密码 private static String PWD = "123456"; //可用连接实例最大数目,默认为 8,若赋值 -1,表示不被限制 private static Integer MAX_TOTAL = 1024; //控制一个连接池最多有多少个状态为空闲的 jedis 实例,默认值为 8 private static Integer MAX_IDLE = 200; //等待可用连接最大的等待时间,单位 ms,默认值 -1,表示永不超时,若等待超时抛出 JedisConnectionException private static Integer MAX_WAIT_MILLIS = 10000; //超时 private static Integer TIMEOUT = 10000; //在用一个 jedis 实例时,是否提前进行 validate 操作,若结果为 true 则 jedis 实例可用 private static Boolean TEST_ON_BORROW = true; //jedis 连接池 private static JedisPool jedisPool = null; /** * 初始化 jedis 连接池的静态块,RedisPool 第一次类加载时执行,以后便不再执行 */ static { try { JedisPoolConfig conf = new JedisPoolConfig(); /* * 高版本 jedis jar 中 JedisPoolConfig 没有 setMaxActive 和 setMaxWait 属性,因为官方在高版本 * 中启用了此方法,用以下两个属性替换 * maxActive ==> maxTotal * maxWait ==> maxWaitMillis */ //设置连接实例最大数目 conf.setMaxTotal(MAX_TOTAL); //设置最多多少空闲的 jedis 实例 conf.setMaxIdle(MAX_IDLE); //设置等待可用连接的最大时间 conf.setMaxWaitMillis(MAX_WAIT_MILLIS); //设置是否提前进行测试借用 conf.setTestOnBorrow(TEST_ON_BORROW); //新建 jedis 连接池 jedisPool = new JedisPool(conf, ADDR, PORT, TIMEOUT, PWD); } catch (Exception e) { e.printStackTrace(); } } /* * 获取 jedis 实例来操作数据,每次使用完要将连接返回给连接池 jedis.close() * @return */ public synchronized static Jedis getRedis() { try { if(jedisPool != null) { //获取 jedis 实例 Jedis jedis = jedisPool.getResource(); return jedis; } else{ System.out.println("没有找到 Jedis 连接池!"); return null; } } catch (Exception e) { e.printStackTrace(); return null; } } /* * 用来回收 Jedis 对象资源,用户需要用到此方法释放资源,否则一直占用资源,在新版本中,`returnResource(jedis) 将被废弃不推荐使用,`直接调用 `jedis.close();` 归还连接到连接池。 * @param Jedis jedis */ public synchronized static void returnJedis(Jedis jedis) { try { if(jedis != null) { //回收 jedis 对象资源 jedisPool.returnResource(jedis); System.out.println("Jedis 被成功回收!"); } } catch (Exception e) { e.printStackTrace(); } }}
到此,关于"怎么用Java实现redis连接池"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
资源
实例
最大
时间
系统
学习
工具
线程
对象
属性
技术
数目
更多
模块
此方法
版本
空闲
帮助
控制
推荐
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云平台的数据库平台
软件开发项目监理怎么处理
什么网络游戏可以关闭服务器
网络安全人才发展白皮书
php往数组加入数据库
tnt的服务器
软件开发合同的税率是多少
化工大学有标准数据库吗
5g网络技术标准
北京理想乡网络技术
开封市2019年网络安全
穿越火线商城服务器
app定制软件开发解决方案
中国移动宽带服务器系统重启
服务器有哪几种分类方式
软件开发的职务有哪些
pubg需要下载服务器吗
云数据库 云服务器区别吗
疫情期网络安全教育
固态硬盘可以当服务器吗
应用程序怎么利用数据库端口
软件开发属it行业吗
php往数组加入数据库
老师-课程的er数据库
京东方东软件开发工程师
爱玩服务器 我的世界
数据库同步id冲突怎么解决
北京特种网络技术服务代理商
广东统一软件开发设施
管理服务器不通怎么回事