1.打开redis服务端
2.下载需要的jar(或maven)
jar1链接:http://commons.apache.org/proper/commons-pool/download_pool.cgi
jar2链接https://mvnrepository.com/artifact/redis.clients/jedis
3.配置连接池资源
首先看一下源码:
可以看到配置类继承了GenericObjectPoolConfig,这也是为什么要导入commons-pool这个jar
配置参数:
// 服务器ip地址
private static String ADDR = "127.0.0.1";
// 端口
private static int PORT = 6379;
// 密码
private static String PASSWORD = "";
// 连接实例的最大连接数
private static int MAX_ACTIVE = 1024;
// 连接池中能存在状态为空闲的个数
private static int MAX_IDLE = 200;
// 等待超时时间,单位毫秒
private static int MAX_WAIT = 2000;
// 连接超时的时间
private static int TIMEOUT = 3000;
// 在borrow一个jedis实例时,是否提前进行validate操作,如果为true得到的实例均是可用的
private static boolean TEST_ON_BORROW = true;
复制
4.加载配置并创建连接池
// 连接池
private static JedisPool jpool = null;
/*
* 初始化连接池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxWaitMillis(MAX_WAIT);
config.setMaxIdle(MAX_IDLE);
config.setMaxTotal(MAX_ACTIVE);
config.setTestOnBorrow(TEST_ON_BORROW);
jpool = new JedisPool(config, ADDR, PORT, TIMEOUT);
} catch (Exception e) {
e.printStackTrace();
}
}
复制
通过饿汉模式单例创建连接池。
5.获取Jedis实例
有了这个实例就可以对redis进行操作了,并且jedis也提供了回收方法。
/*
* 获取Jedis实例
*/
public static Jedis getJedis() {
if (jpool != null) {
return jpool.getResource();
} else {
return null;
}
}
/*
* 回收Jedis
*/
public static void returnJedis(final Jedis jedis) {
if (jedis != null) {
jpool.returnResource(jedis);
}
}
复制
6.测试
public class Operation {
public static void main(String[] args) {
Jedis jedis = Connections.getJedis();
jedis.set("java", "测试");
System.out.println(jedis.get("java"));
Connections.returnJedis(jedis);
}
}
复制
这样一个简单的demo就成功了。
全部代码:
/*
*获取连接的类
*/
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Connections {
// 服务器ip地址
private static String ADDR = "127.0.0.1";
// 端口
private static int PORT = 6379;
// 密码
private static String PASSWORD = "";
// 连接实例的最大连接数
private static int MAX_ACTIVE = 1024;
// 连接池中能存在状态为空闲的个数
private static int MAX_IDLE = 200;
// 等待超时时间,单位毫秒
private static int MAX_WAIT = 2000;
// 连接超时的时间
private static int TIMEOUT = 3000;
// 在borrow一个jedis实例时,是否提前进行validate操作,如果为true得到的实例均是可用的
private static boolean TEST_ON_BORROW = true;
// 连接池
private static JedisPool jpool = null;
/*
* 初始化连接池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxWaitMillis(MAX_WAIT);
config.setMaxIdle(MAX_IDLE);
config.setMaxTotal(MAX_ACTIVE);
config.setTestOnBorrow(TEST_ON_BORROW);
jpool = new JedisPool(config, ADDR, PORT, TIMEOUT);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 获取Jedis实例
*/
public static Jedis getJedis() {
if (jpool != null) {
return jpool.getResource();
} else {
return null;
}
}
/*
* 回收Jedis
*/
public static void returnJedis(final Jedis jedis) {
if (jedis != null) {
jpool.returnResource(jedis);
}
}
}
/*
*测试类
*/
import redis.clients.jedis.Jedis;
public class Operation {
public static void main(String[] args) {
Jedis jedis = Connections.getJedis();
jedis.set("java", "测试");
System.out.println(jedis.get("java"));
Connections.returnJedis(jedis);
}
}
复制
文章转载自大学生IT学习之家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle 发布 Java 24
通讯员
141次阅读
2025-03-19 10:08:51
Oracle 正式发布 Java 24
千钧
104次阅读
2025-03-20 11:26:28
融合Redis缓存的PostgreSQL高可用架构
梧桐
55次阅读
2025-04-08 06:35:40
缓存监控治理在游戏业务的实践和探索
vivo互联网技术
43次阅读
2025-03-20 09:51:10
Java 与 Oracle 集成
芃芃
39次阅读
2025-03-19 21:21:38
Redis 集群主备切换原因分析
wzf0072
37次阅读
2025-03-20 17:51:42
国产非关系型数据库 Eloqkv 初体验
JiekeXu
33次阅读
2025-04-10 23:51:35
Redis 高可用方案
天翼云开发者社区
31次阅读
2025-03-24 17:09:54
Redis Cluster集群模式:构建大规模高性能分布式存储系统
老王两点中
31次阅读
2025-03-17 09:00:28
从零玩转GaussDB:Java开发者必学的JDBC操作指南
数据库运维之道
28次阅读
2025-03-19 11:20:48