jedis使用,操作Redis数据库2

在刚刚ping通的基础上,再来通过jedis连接池连接redis

在resources下创建redis.properties配置文件,在配置文件中写如下内容

# 必配
# Redis服务器地址(域名或IP)
redis.host=192.168.40.100
# Redis服务器连接端口(Redis默认端口号是6379)
redis.port=6379
# Redis服务器连接密码(默认为空)
redis.password=# 选配
# 最大连接数
redis.maxTotal=1000
# 最大空闲连接数
redis.maxIdle=30
# 最大的阻塞时长
redis.maxWait=60000
# 向资源池借用连接时是否做连接有效性检测(ping)。检测到的无效连接将会被移除
redis.testOnBorrow=true

创建JedisPoolUtil工具类,这些都是固定死的,可以直接cv


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;import java.io.IOException;
import java.io.InputStream;
import java.time.Duration;
import java.util.Properties;/** 单例模式优化Jedis连接池 */
public class JedisPoolUtil {// Redis服务器地址(域名或IP)private static String host;// Redis服务器连接端口(Redis默认端口号是6379)private static String port;// Redis服务器连接密码(默认为空)private static String password;// 最大连接数private static String maxTotal;// 最大空闲连接数private static String maxIdle;// 最大的阻塞时长private static String maxWait;// 向资源池借用连接时是否做连接有效性检测(ping)。检测到的无效连接将会被移除private static String testOnBorrow;private volatile static JedisPool jedisPool = null;private volatile static Jedis jedis = null;static {// 读取配置文件。加载redis.properties配置文件,通过反射的方式得到文件输入流InputStream inputStream = JedisPoolUtil.class.getClassLoader().getResourceAsStream("redis.properties");// 创建读取配置文件的properties对象,Properties继承了Hashtable类,Hashtable类实现了Map接口Properties properties = new Properties();try {/** 1.方法作用:从字节输入流中读取键值对。该方法常用于读取配置文件。* 2.参数含义:参数中使用了字节输入流,通过流对象可以关联到某文件上,这样就能够加载文本中的数据了。文本中的数据,*           必须是键值对形式,可以使用空格、等号、冒号等符号分隔。*/properties.load(inputStream);// 获取Redis数据库连接信息host = properties.getProperty("redis.host");port = properties.getProperty("redis.port");password = properties.getProperty("redis.password");maxTotal = properties.getProperty("redis.maxTotal");maxIdle = properties.getProperty("redis.maxIdle");maxWait = properties.getProperty("redis.maxWait");testOnBorrow= properties.getProperty("redis.testOnBorrow");} catch (IOException e) {e.printStackTrace();} finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}//私有化处理private JedisPoolUtil() {}// 返回Jedis连接池对象的静态方法private static JedisPool getInstance() {// 单例模式实现:双检锁/双重校验锁。这种方式采用双锁机制,安全且在多线程情况下能保持高性能if(jedisPool == null) {synchronized (JedisPoolUtil.class) {if(jedisPool == null) {// 创建一个配置对象JedisPoolConfig config = new JedisPoolConfig();//可选项config.setMaxTotal(Integer.parseInt(maxTotal)); // 资源池中的最大连接数config.setMaxIdle(Integer.parseInt(maxIdle)); // 资源池允许的最大空闲连接数// 当资源池连接用尽后,调用者的最大等待时间(单位为毫秒)config.setMaxWait(Duration.ofMillis(Integer.parseInt(maxWait)));// 向资源池借用连接时是否做连接有效性检测(业务量很大时候建议设置为false,减少一次ping的开销)config.setTestOnBorrow(Boolean.valueOf(testOnBorrow));// 初始化JedisPool              必选项jedisPool = new JedisPool(config, host, Integer.parseInt(port));}}}return jedisPool;}/** 获取连接方法 */public static Jedis getJedis() {if (jedis == null) {// 获取连接jedis = getInstance().getResource();}return jedis;}
}

编写测试类进行测试: 通过连接池来连接redis

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4461.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis实战篇(三)

四.分布式锁 4.1.分布式锁概述 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程并行,让程序串行…

Use ELK with Django Log

What is ELK? The ELK Stack is a collection of three open source products: ElasticsearchLogstashKibana When to use ELK? ELK is designed to allow us to take data from any source, in any format, and to search, analyze, visualize data in real time. At t…

Es索引中时间字段是字符串Range查询的正确姿势

文章目录 [toc] 1. 问题2. Es索引的mapping模式2.1 dynamic动态宽松模式(动态映射)2.2 strict严格模式(静态映射) 3. text类型和keyword类型的区别3.1 text类型3.2 keyword类型 4.正确姿势5. 总结 1. 问题 由于之前搞了一个使用fl…

panda3d 模型转换命令复习学习

在此学习了把maya模型转换为panda3d的egg格式; 在Panda3d中转换Maya模型为egg格式并使用pview查看_panda3d egg文件浏览器_bcbobo21cn的博客-CSDN博客 下面继续看一下模型转换命令;列出带 egg 字符串的命令; 先复习一下,可以把m…

数据库—概念学习

文章目录 总览全局数据库数据库管理系统DBA数据库管理员数据库系统的体系结构三层模式两级映像独立性 数据模型数据库技术的产生与发展相关定义 总览全局 整个数据库系统所包含为: 数据库(数据的集合叫做一个库)数据库管理系统数据库应用系…

【azure】office 365邮箱auth2认证之spa的刷新令牌过期后如何处理

参考:https://learn.microsoft.com/zh-cn/azure/active-directory/develop/refresh-tokens 官方对令牌和刷新令牌生命周期的描述 已失效的刷新令牌如何获取新的令牌和刷新令牌 /*** office 365使用失效的刷新令牌和应用程序的相关信息来获取新的访问令牌和刷新令牌…

kafka入门,数据去重(九)

数据传递语义 至少一次:ACK级别设置为-1分区副本大于等于2ISR里应答的最小副本数量大于等于2 最多一次:ACK级别设置为0 总结: At Least Once:可以保证数据不丢失,但是不能保证数据不重复 At Most Once:可以…

软件测试面试-银行篇

今天参加了一场比较正式的面试,汇丰银行的视频面试。在这里把面试的流程记录一下,结果还不确定,但是面试也是自我学习和成长的过程,所以记录下来大家也可以互相探讨一下。 请你做一下自我介绍?(汇丰要求英…

Stable Diffusion 对图像进行风格化

风格化是基于现有图像转换成另一种风格的操作方法,通常应用于img2img中,将文字提示中特定的新风格应用于原图像上进行修改。在这个过程中并非使用随机的潜在状态,而是采用原始图像去编码初始潜在状态。在此基础上通过加入少量的随机性&#x…

自己动手写C语言float浮点数转换字符串的函数

最近在项目中用到了holtek厂商的HT45F24A和BA45F5650两款单片机。 用的开发工具是HT-IDE3000,烧录软件是HOPE3000。 这两款单片机都是8位的单片机,支持寄存器位操作。 HT45F24A单片机不带UART串口,要想实现串口功能,只能自己用定时…

【数据库四】MySQL备份与恢复

MySQL备份与恢复 1.数据库备份的分类1.1 数据备份的重要性1.2 数据库备份的分类1.3 常见的备份方法 2.MySQL完全备份与恢复2.1 MySQL完全备份2.2 数据库完全备份分类2.3 MySQL物理冷备份及恢复2.4 数据迁移DST2.5 mysqldump进行逻辑备份2.5.1 mysqldump备份数据库2.5.2 mysqldu…

leetcode 101. 对称二叉树

2023.7.2 这道题要求我们判断一颗二叉树是否是对称的。我使用的是广度优先搜索的思想&#xff0c;通过队列将需要比较的节点依次入队和出队&#xff0c;进行对称性的判断。下面直接上代码&#xff1a; class Solution { public:bool isSymmetric(TreeNode* root) {queue<Tr…