我使用Spring RedisTemplate (Spring-Data-redis1.7.1)与Redis进行通信。我需要通过regexp获取并删除键(例如:“context:user1 1:*”)。我使用的方法是“RedisTemplate.keys(.)”用于获取键数组
{
String key = String.format("%s:%s:%s", context, userId,"*");
Set<byte[]> keys = redisTemplate.getConnectionFactory().getConnection().keys(key.getBytes());
logger.debug(String.format("test log"));
}但是在8-9迭代调用restTemplates.keys(.)停止执行我的java服务。方法调用不会从框架中返回。我的服务被挂断了。而且每次都会发生这种事。解决办法只是重新启动我的服务。
发布于 2016-04-15 08:24:08
假设您使用的是Jedis和池,则会遇到底层连接池的耗尽。
每次对redisTemplate.getConnectionFactory().getConnection()的调用都会从连接池分配一个新连接。你打电话给connection.close()吗?否则,泳池就会筋疲力尽。池开始阻塞您的请求(希望另一个线程返回一个连接,以便它可以被请求连接的线程使用)。
https://stackoverflow.com/questions/36623208
复制相似问题