【发布时间】:2017-11-18 02:08:23
【问题描述】:
我正在使用 Jedis 连接 REST 服务中的 Redis 服务器。
当我调用网络服务时,我想做 jedis.hmget 、 jedis.exits 和 hgetALL 等操作。
例如:
jedis.hmget("employee:data:" + emp_user_id, "employee_id").get(0);
我用于 Redis 的配置是:
Jedis jedis;
JedisShardInfo shardInfo;
@PostConstruct
public void init() {
try {
shardInfo = new JedisShardInfo(Config.getRedisHost(), Config.getRedisPort());
shardInfo.setPassword(Config.getRedisPassword());
jedis = new Jedis(shardInfo);
jedis.select(2);
//jedis.se
} catch (Exception e) {
logger.error("Exception in init ------- > " + e);
}
}
我知道 Jedis 不是线程安全的。当我一次使用 1000 个线程调用该服务时,我收到一个异常,即 Unexpected end of stream。我想知道 Jedis 池是线程安全的吗?无法找到具体的解决方案。
谢谢。任何帮助将不胜感激。
【问题讨论】:
标签: java multithreading spring-boot connection-pooling jedis