tencent cloud

腾讯云分布式缓存数据库(兼容 Redis)

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
应用场景
存储引擎
产品系列
产品版本
规格与性能
读写分离
多可用区部署
地域和可用区
名词解释
购买指南
计费概述
定价中心
购买实例
续费说明(包年包月)
退费说明(包年包月)
欠费说明
按量转包年包月
快速入门
快速创建实例
连接 Redis 实例
操作指南
操作总览
连接数据库实例
管理实例
升级实例
管理节点(Redis/ValKey 版)
管理多可用区
备份与恢复
账号管理
参数配置
慢查询
访问管理
网络与安全
监控与告警
事件管理(Redis/ValKey 版)
数据迁移
Redis 版全球复制
数据库审计
诊断优化
Sentinel 模式
开发准则
命名规则
基本使用准则
Key 与 Value 设计原则
命令使用准则
客户端程序设计准则
连接池配置
命令参考
命令参考概览
Redis 版与 Valkey 版命令兼容性
大版本命令使用差异
Proxy 架构与直连模式的使用差异
命令更多操作(Redis/Valkey 版)
Memcached 版命令兼容性
实践教程
基于 Spring Boot 搭建 Redis 客户端监控
Redis 客户端连接配置策略与实践
集群架构全局 SCAN 使用指南
实例安全下线
热 Key 与 大 key
可用区迁移方案
故障处理
连接异常
Redisson 客户端超时重连异常分析及解决方案
性能排查与调优
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Parameter Management APIs
Other APIs
Backup and Restoration APIs
Region APIs
Monitoring and Management APIs
Log APIs
Data Types
Error Codes
常见问题
使用常见问题
连接登录问题
购买相关问题
相关协议
服务等级协议
Terms of Service
词汇表
联系我们

Jedis 连接池代码示例

PDF
聚焦模式
字号
最后更新时间: 2024-11-05 09:39:24

准备工作

下载客户端 Jedis,推荐使用最新版本。

代码示例

连接池代码示例及其中各个参数的含义,如下所示:
参数
含义
建议
setMaxTotal
连接池中的最大连接数。
设置该参数,需要考虑业务并发量、访问延迟、最大连接数等因素。
setMaxIdle
连接池最大空闲连接数。
建议与 setMaxTotal 相同。
setMinIdle
资源池允许的最小空闲连接数。
建议与 setMaxTotal 相同。
timeout
超时时间。
该参数需要根据业务模型及网络链路性能设置。
一般网络延迟较低,服务耗时非常敏感的业务,可以设置50-100ms。
如果业务容忍度高,或者业务访问 kv 数据较大,可以设置500ms、1000ms。
setTestOnBorrow
设置在从连接池中获取连接时是否进行连接测试。
如果设置为 true,则在获取连接时会调用 connection.isValid()方法进行连接测试。以确保获取到的连接是可用的,但同时会消耗 QPS 性能。
如果设置为 false,则不会进行连接测试。可以提高连接获取的速度,但是可能会获取到不可用的连接。
setTestOnReturn
设置将连接归还连接池时,是否进行校验。
如果设置为 true,则在归还连接时会调用 connection.isValid() 方法进行连接测试,以确保归还的连接是可用的。
如果设置为 false,则不会进行连接测试。可以提高归还连接的速度,但是可能会归还不可用的连接。通常情况下建议设置为 true
JedisPoolConfig config = new JedisPoolConfig();
// 最大空闲连接数,需自行评估,不超过Redis实例的最大连接数
config.setMaxIdle(200);
// 最大连接数,需自行评估,不超过Redis实例的最大连接数
config.setMaxTotal(200);
//资源池允许的最小空闲连接数
config.setMinIdle(20);
//当资源池连接用尽后,调用者的最大等待时间(单位为毫秒)
config.setMaxWaitMillis(3000);
//从连接池中获取对象时,会先进行ping检查,检查不通过,会从连接池中移走并销毁。
config.setTestOnBorrow(false);
//归还连接时,会进行检查,检查不通过,则销毁。
config.setTestOnReturn(false);
// 设置连接池方式为队列
config.setLifo(false);
//设置最小连接检查
config.setTimeBetweenEvictionRunsMillis(3000);
// 分别将host和password的值替换为实例的连接地址、密码
String host = "192.xx.xx.195";
String password = "123ad6aq";
//读写超时(单位为毫秒)
int timeout = 2000;
int port = 6379;
JedisPool pool = new JedisPool(config,host,port,timeout,password);
Jedis jedis = null;
boolean broken = false;
try
{
jedis = pool.getResource();
/// ... do stuff here ... for example
jedis.set("redis", "tencent");
String foobar = jedis.get("redis");
jedis.zadd("tec", 0, "a");
jedis.zadd("tec", 0, "b");
Set < String > sose = jedis.zrange("tec", 0, -1);
}
catch(Exception e)
{
broken = true;
}
finally
{
if(broken)
{
pool.returnBrokenResource(jedis);
}
else if(jedis != null)
{
pool.returnResource(jedis);
}
}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈