1

我们正在 Redis 上执行 Set Operations 以提取和过滤数据以进行定位。这些集合即以下列方式表示

fruits={'orange','lemon','apple'}
vegetables={'tomato'}
citric={'orange','lemon','tomato'}

我们正在使用 Jedis 客户端进行 SUNION 和 SINTER,但是当晚我们观察到并发 100 时,Redis 服务返回超时,即使使用像 SMEMBERS 这样的简单操作该集合包含不超过 7 个项目

jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.maxActive = 1000;//Arguably High
jedisPoolConfig.minIdle = 300;//Arguably High
jedisPoolConfig.maxIdle = 500; //Arguably High
jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379, 1000);
jedis = jedisPool.getResource();
availableAds = new ArrayList<String>( jedis.smembers("fruits"));
jedisPool.returnResource(jedis);

Java 异常

redis.clients.jedis.exceptions.JedisConnectionException :似乎服务器已关闭连接。

Redis 错误日志

来自客户端的协议错误:addr=xxxx:xxxx fd=270 idle=0 flags=N db=0 sub=0 psub=0 qbuf=96 obl=47 oll=0 events=rw cmd=smembers

测试在 Amazon EC2 中型实例 (C1.medium) 上运行,servlet 使用 blitz.io 作为负载测试工具进行测试

4

0 回答 0