我正在使用redisofbizjedis 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/

    10-13 01:35