Java Spring RedisTemplate:调用8次后方法键挂起

Java Spring RedisTemplate:调用8次后方法键挂起,java,spring,redis,Java,Spring,Redis,我使用SpringRedisTemplate(SpringDataRedis1.7.1)与redis通信。我需要通过regexp获取并删除密钥(例如:“context:user1:*”)。我使用方法“RedisTemplate.keys(…)”来获取密钥数组 { String key = String.format("%s:%s:%s", context, userId,"*"); Set<byte[]> keys = redisTemplate.getConnect

我使用SpringRedisTemplate(SpringDataRedis1.7.1)与redis通信。我需要通过regexp获取并删除密钥(例如:“context:user1:*”)。我使用方法“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"));
}
{
字符串键=字符串。格式(“%s:%s:%s”,上下文,用户ID,“*”;
Set keys=redisTemplate.getConnectionFactory().getConnection().keys(key.getBytes());
logger.debug(String.format(“测试日志”));
}

但在8-9次迭代中,调用restTemplates.keys(…)会停止java服务的执行。方法的调用不是从框架返回的。我的服务挂断了。而且它每次都在发生。解决方法只是重新启动我的服务

假设您使用的是Jedis池,那么底层连接池将耗尽


每次调用
redisTemplate.getConnectionFactory().getConnection()
都会从连接池中分配一个新连接。是否调用
connection.close()
?。否则,游泳池将耗尽。池开始阻止您的请求(希望另一个线程将返回连接,以便请求连接的线程可以使用它)。

您能否详细说明
,但在8-9次迭代中,调用restTemplates。键(…)将停止执行my java服务。
。浏览器是否一直在加载?是的,在8-9次调用redisTemplate.getConnectionFactory().getConnection().keys(key.getBytes())之后;我的服务一直在加载你认为你会找到钥匙,为什么。如果找不到钥匙怎么办。第二,代码在哪里,在哪里可以得到keys.getBytes?首先尝试获取密钥,检查其是否为null,然后重试。您还可以为redis启用调试日志记录吗?redis监视器的日志记录(7次):[0 127.0.0.1:54892]“键”对话框:测试:*“如果我使用redisTemplate.delete删除循环,它也会发生。如果我找不到键,那么只设置键将为null。但是我不会从redisTempate.keys()返回任何内容。我的服务挂断了,我需要重新启动谢谢。我还将redisTemplate.getConnectionFactory().getConnection().keys(…)更改为redisTemplate.keys(…)为我工作,你就是那个人!