在 Jedis 中使用连接池
Use Connection pool with Jedis
我正在使用 Jedis 连接 REST 服务中的 Redis 服务器。
当我调用 Web 服务时,我想执行 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 个线程调用服务时,我收到一个异常,作为流的意外结束。我想知道 Jedis 池是线程安全的吗?找不到具体的解决方案。
谢谢。任何帮助将不胜感激。
查看Spring-data-redis.
当您添加一个 JedisConnectionFactory
时,您会得到一个默认具有连接池功能的 connectionFactory。
JedisConnectionFactory()
Constructs a new JedisConnectionFactory instance with default settings (default connection pooling, no shard information). See docs.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:use-pool="true" p:host-name="server" p:port="6379"/>
</beans>
欲了解更多信息,see the documentation。
JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost", portno, 10000,
"password");
我正在使用 Jedis 连接 REST 服务中的 Redis 服务器。
当我调用 Web 服务时,我想执行 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 个线程调用服务时,我收到一个异常,作为流的意外结束。我想知道 Jedis 池是线程安全的吗?找不到具体的解决方案。
谢谢。任何帮助将不胜感激。
查看Spring-data-redis.
当您添加一个 JedisConnectionFactory
时,您会得到一个默认具有连接池功能的 connectionFactory。
JedisConnectionFactory()
Constructs a new JedisConnectionFactory instance with default settings (default connection pooling, no shard information). See docs.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:use-pool="true" p:host-name="server" p:port="6379"/>
</beans>
欲了解更多信息,see the documentation。
JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost", portno, 10000,
"password");