我正在使用redis
将ofbiz
与jedis client
集成在一起。
一台Redis服务器正在由不同的应用程序使用。
我的问题是
JedisPool
将保留多少个连接。 JedisPool
,将影响redis
性能注意:我正在另一个应用程序中使用默认配置创建
JedisPool
。client = new JedisPool(ip, port);
有什么更好的办法吗?建议我。谢谢
更新:使用默认配置用户
redis server
启动spring data
<bean id="connectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="${app.cache.redis.host}" p:port="${app.cache.redis.port}" p:password="${app.cache.redis.password}" />
最佳答案
1)默认情况下,JedisPool将保留多少个连接
通过在此实例中使用JedisPool,
client = new JedisPool(ip, port);
您正在使用来自apache-commons-pool的
GenericObjectPoolConfig
。该通用池的默认配置为:
DEFAULT_MAX_TOTAL = 8
DEFAULT_MAX_IDLE = 8
DEFAULT_MIN_IDLE = 0
2)如果我创建多个JedisPool,它将影响redis性能
是的,没有。如果创建多个JedisPool,则将有更多客户端连接到Redis。但是Redis可以以很好的性能支持许多连接的客户端。
您可以在redis.conf中设置Redis最大客户端授权号(例如10000个最大客户端)。
maxclients 10000
或在启动时:
./redis-server --maxclients 10000
或与redis-cli:
127.0.0.1:6379> config set maxclients 10000
在默认配置中,授权客户端的数量是无限的。
根据您的用例,您可以拥有多个JedisPool,或者只是增加JedisPool的大小(以拥有8个以上的连接)。
关于performance - JedisPool保留默认连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42220505/