Jedis工具类使用及设置
Jedis是Redis数据库的java工具类,类似于JDBC中的Connection,也是对数据库进行CRUD的通道(这样说是不是有点不严谨~~~)
附上几个Redis的通用命令:
key* 查看所有的key值
type key 获得key的数据类型
Jedis一般工具类的编写,如图:(此处以本机为数据库)
代码如下:
1 package com.didinx.filter; 2 3 import redis.clients.jedis.Jedis; 4 5 /** 6 * @author o_0sky 7 * @date 2019/2/14 1:07 8 */ 9 public class Jedis1 { 10 public static void main(String[] args) { 11 //创建redis核心对象 12 Jedis jedis = new Jedis("localhost", 6379); 13 //存值 14 jedis.set("key", "value"); 15 //取值并打印 16 System.out.println(jedis.get("key")); 17 //释放资源 18 jedis.close(); 19 } 20 }
jedis如同connection一样,连接资源的创建和销毁都会很消耗性能,所以jedis提供了池化技术,下图是常用的池化技术的参数列表:
联系上图:
池化技术代码如下:
1 package com.didinx.filter; 2 3 import redis.clients.jedis.Jedis; 4 import redis.clients.jedis.JedisPool; 5 import redis.clients.jedis.JedisPoolConfig; 6 7 /** 8 * @author o_0sky 9 * @date 2019/2/14 1:33 10 */ 11 public class JedisPool1 { 12 public static void main(String[] args) { 13 //生成连接池配置对象,设置配置项 14 JedisPoolConfig config = new JedisPoolConfig(); 15 //最大连接数 16 config.setMaxTotal(100); 17 //最大空闲数 18 config.setMaxIdle(20); 19 //获得连接池 20 JedisPool jedisPool = new JedisPool(config, "localhost", 6379); 21 Jedis jedis = null; 22 try { 23 //从连接池获取连接 24 jedis = jedisPool.getResource(); 25 //给连接赋值 26 jedis.set("age", "30"); 27 //从连接池中取值并打印 28 System.out.println(jedis.get("age")); 29 } catch (Exception e) { 30 e.printStackTrace(); 31 } finally { 32 //此处jedis.close()并不是销毁连接,而是将连接返回连接池 33 if (null != jedis) { 34 jedis.close(); 35 } 36 } 37 //电脑关闭时,关闭连接池 38 if (null != jedisPool) { 39 jedisPool.close(); 40 } 41 42 } 43 }
如同JDBC,Jedis也有工具类,配置文件为properties格式,代码如下:
1 package didinx; 2 3 import redis.clients.jedis.Jedis; 4 import redis.clients.jedis.JedisPool; 5 import redis.clients.jedis.JedisPoolConfig; 6 7 import java.util.ResourceBundle; 8 9 /** 10 * @author o_0sky 11 * @date 2019/2/14 1:49 12 */ 13 public class JedisUtil { 14 //设置参数 15 private static String host; 16 private static int port; 17 private static int maxtotal; 18 private static int maxwaitmillis; 19 private static JedisPool jedisPool; 20 21 //加载配置文件并给参数赋值 22 static { 23 ResourceBundle rb = ResourceBundle.getBundle("jedis"); 24 maxtotal = Integer.parseInt(rb.getString("maxtotal")); 25 maxwaitmillis = Integer.parseInt(rb.getString("maxwaitmillis")); 26 port = Integer.parseInt(rb.getString("port")); 27 host = rb.getString("host"); 28 } 29 30 /** 31 * 初始化连接池 32 */ 33 static { 34 JedisPoolConfig config = new JedisPoolConfig(); 35 config.setMaxTotal(maxtotal); 36 config.setMaxWaitMillis(maxwaitmillis); 37 jedisPool = new JedisPool(config, host, port); 38 } 39 40 /** 41 * 获取连接方法 42 * 43 * @return 44 */ 45 public static Jedis getJedis() { 46 return jedisPool.getResource(); 47 } 48 49 /** 50 * 释放资源 51 * 52 * @param jedis 53 */ 54 public static void closeJedis(Jedis jedis) { 55 if (null != jedis) { 56 jedis.close(); 57 } 58 } 59 }
转载于:https://www.cnblogs.com/linsky/p/10367848.html
Jedis工具类使用及设置相关推荐
- Jedis工具类(含分布式锁的调用和释放)
个人把工具类分为两部分: 一.连接池部分 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.j ...
- Java Redis 连接池 Jedis 工具类,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- 动态代理模式_应用(Redis工具类)
本次使用动态代理的初衷是学习Redis,使用Java操作Redis时用到Jedis的JedisPool,而后对Jedis的方法进一步封装完善成为一个工具类. 因为直接使用Jedis对象时,为了保证性能 ...
- java log 封装_工具类之LogUtils
安卓开发离不开记录log日志,封装了一份简单的日志工具类,具有设置日志总开关,是否写入文件,日志过滤器和自定义标签,锁定打印log的类.函数名及行号,初始化有可以使用init函数也可以使用建造者模式, ...
- 关于jedis2.4以上版本的连接池配置,及工具类
jedis.propertise 注意以前版本的maxAcitve和maxWait有所改变,JVM根据系统环境变量ServerType中的值 取不同的配置,实现多环境(测试环境.生产环境)集成. re ...
- 一次代码重构之旅-快速读写xml文件工具类封装
为了满足系统的灵活性,有些功能经常需要用到配置文件,一般是xml格式的居多.如何能快速读写配置文件呢? 以前都是用dom4j提供的api来读写xml文件,用dom4j读写配置文件总感觉像是在结构化的处 ...
- 史上最全的常用开发工具类收集Android
API 银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验 ...
- 史上最全的开发工具类
银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位 ge ...
- 基于jedis的Redis工具类
本文来记录下基于 jedis 的 Redis 工具类 文章目录 核心代码 核心代码 以下为核心代码 /*** 基于jedis的redis操作工具类* @author www* @time 2021/8 ...
最新文章
- java的datatype_java数据类型
- 2018目标检测最新算法+经典目标检测算法
- 对标以太坊的EOS再火,也拼不过InterValue的区块链4.0
- 解决PHP Fatal error mysql_connect() mysql_query()的问题
- linux刚重启就报资源不可用,linux系统重启网络配置
- 2021辽宁大洼高中高考成绩查询,2021大洼高中最后一跑——励志高考,逆袭人生...
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……(转载)
- 低代码,是否能“取代”开发者?
- 模拟集成电路大牛的经验
- 2022最新小额借贷系统程序源码+附教程文档
- svn忽略指定文件或目录
- 2018全球50大最佳发明名单
- linux系统的ftp命令大全,Linux-FTP命令大全(完整版)
- 【色彩管理】CMYK色彩模式详解
- python导入数据画折线图_Python学习第93课-导入csv数据并绘制折线图
- USB Host、USB Device和USB otg的理论简析
- 2021年中国外卖行业发展现状、市场竞争格局及未来发展趋势分析:美团外卖市场份额持续提升[图]
- C++实现复杂链表的复制
- html,canvas——星星闪烁
- 软件性能测试方案怎么编写?权威的性能测试报告如何申请?
热门文章
- 运放电路分析_必看!运放电路PCB设计技巧
- python gui界面实例_Python界面(GUI)编程PyQt5工具栏和菜单
- HarmonyOS应用如何开发,使用什么开发工具及安装使用教程说明!
- npm报错 npm WARN deprecated....的问题解决方式
- python浪漫文艺_Python程序员的文艺之路
- Linux笔记-利用chkconfig创建脚本使得Rabbimq开机自启
- 反汇编基础-乘法与除法
- C/C++,Qt,Python,OpenCV小项目实战-实时桌面颜色查询
- Qt工作笔记-视图/模型以及过滤代理模型的使用
- mysql5.7.24 rpm安装_centos7下安装mysql5.7.24