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

2024-04-12

我使用 Spring RedisTemplate (spring-data-redis 1.7.1) 与 Redis 进行通信。我需要通过正则表达式获取然后删除键(例如:“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"));
}

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


假设您将 Jedis 与池结合使用,您会遇到底层连接池耗尽的情况。

每次致电redisTemplate.getConnectionFactory().getConnection()从连接池中分配一个新连接。你打电话吗connection.close()?。如果没有,池就会耗尽。池开始阻止您的请求(希望另一个线程将返回一个连接,以便请求连接的线程可以使用它)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring RedisTemplate:8次调用后方法键挂起 的相关文章

随机推荐