从redis池中获取资源

启动redis 服务:

在解压后的redis目录里面启动cmd命令行

执行redis-server.exe redis.windows.conf命令启动redis

导入jar包

package test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class TestRedis {

// 服务器ip地址
private static String ADDR = "127.0.0.1";
// 端口
// private static String PORT = "6379";
// 密码
// private static String AUTH = "123456";
// 连接实例的最大连接数
private static int MAX_ACTIVE = 1024;
// 控制一个池做多有多少个idle的jedis实例、默认值是8
private static int MAX_IDLE = 200;
// 等待可用链接的最大时间、单位毫秒默认值-1表示不超时、如果超时等待会抛出链接异常
private static int MAX_WAIT = 10000;
// 链接超时时间
private static int TIMEOUT = 10000;
// 在生成一个jedis实例的时候是否提前进行validate操作、如果为true,则得到的jedis实例均是可用的。
private static boolean TEST_ON_BORROW = true;
private static JedisPool jedisPool = null;
// 数据库模式是16个库
public static final int DEFAULT_DATABASE = 0;

// 初始化redis线程池
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
config.setMaxTotal(MAX_ACTIVE);
// jedisPool = new JedisPool(config, ADDR, TIMEOUT, DEFAULT_DATABASE);
jedisPool = new JedisPool(config, ADDR);
System.out.println(jedisPool.getNumActive());
} catch (Exception e) {
}
}

public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis jedis = jedisPool.getResource();
System.out.println(jedis.ping());
return jedis;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

public static void retunResource(Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}

public static void main(String[] args) {
Jedis jedis = TestRedis.getJedis();
jedis.set("aaa", "bbb");
System.out.println(jedis.get("aaa"));
}

}

测试结果:

原文地址:https://www.cnblogs.com/dengw125792/p/12664993.html

时间: 2024-08-29 04:08:19

从redis池中获取资源的相关文章

通过JNDI从服务器容器中获取资源_Spring JNDI+Mysql+Tomcat

通过JNDI从服务器容器中获取DataSource资源 (由容器管理,不要关闭它,容器自己会处理)上一篇我们使用的是dbcp,这里使用JNDI: 使用JNDI连接数据: 在Spring注释 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="userna

超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

我在玩webservice中遇到这个问题,情况是:(.net4.0)之前用的是好的,更新系统后出错.vs运行是好的,IIS运行出错..net底层抛错.换成.net2.0后完美运行.所以.net4.0出问题. ========================================================================================================= (转) 问题解决方法: 解决办法 1.在代码里面,把未关闭的连接关闭 2.扩大共

[bug]超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

引言 自己弄了一个小项目——日程管理系统,在初始化日期时,查询了数据库,每个日期就会查询一次数据库,就导致了这个问题. 问题 出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the

Android4.4中获取资源路径问题

关于Android4.4的图片路径获取,如果回来的Uri的格式有两种 [java] view plaincopy content://com.android.providers.media.documents/document/image:3951 [java] view plaincopy content://media/external/images/media/3951 出现第一种Uri的操作方式如下图所示: 直接点选最近的图片,应该是Android4.4 特有的Api . 找到了一个更全

连接字符串中Min Pool Size的理解是错误,超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

Min Pool Size的理解是错误的 假设我们在一个ASP.NET应用程序的连接字符串中将Min Pool Size设置为30: <add name="cnblogs" connectionString="Data Source=.;Initial Catalog=cnblogs;Min Pool Size=30" providerName="System.Data.SqlClient"/> 访问一下应用程序,然后用Windows

[转]超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

超时时间已到.超时时间已到,但是尚未从池中获取连接.出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小. 解决办法:首先要做的是在我们使用连接后立即关闭连接.如果没有关闭连接那么连接将保存到连接池中知道GC来销毁.这种情况下你以为连接池没有到达最大值但实际上连接池已经到达了最大值 其次我们可以通过连接字符串中的Max Pool Size = N;来动态扩大连接池中的连接最大数量. 说明: 也就是在connectionString中如果未指定max pool size的值,则max p

Oracle OCP之硬解析在共享池中获取内存锁的过程

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/38684819 1.获得library cache Latch (1)在父游标的名柄没有找到SQL语句的文本:select * from gyj_t1 where id=1; 2.释放library cache Latch 3.获得shared pool Latch     (1)搜索FreeList 空闲Chunk     (2)搜索LRU上可覆盖的chunk     (3)搜索R-Fr

超时时间已到。在从池中获取连接之前超时时间已过,连接池达到最大

NET网站出错信息如下: 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.InvalidOperationException: 超时时间已到.超时时间已到,但是尚未从池中获取连接.出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小. 源错误: 执行当前 Web 请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息. “/”应用程序中的服务

超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置 参考数据库链接串: <add key="data" value="server=192.168.1.123; Port=3306; uid=root; pwd=root;database=data;pooling=true;min pool size=5;max pool size=512;connect timeout = 20; "/> 查看应用程