【并发测试】Redis并发性能测试
arthas 测试示例
Redis配置类
@Slf4j
@Configuration
public class RedisConfig {
@Bean
JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
configuration.setHostName(redisHost);
configuration.setPassword(redisPassword);
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(redisHost);
factory.setPort(redisPort);
factory.setPoolConfig(new JedisPoolConfig() {{
setMaxTotal(finalRedisMaxTotal);
setMaxIdle(finalRedisMaxIdle);
setMinIdle(finalRedisMinIdle);
setTestOnBorrow(true);
setTestOnReturn(true);
setTestWhileIdle(true);
setNumTestsPerEvictionRun(10);
setTimeBetweenEvictionRunsMillis(30000);
setMinEvictableIdleTimeMillis(60000);
setSoftMinEvictableIdleTimeMillis(20000);
}});
return factory;
}
@Bean
public RedisTemplate redisTemplate() {
RedisTemplate template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
@Bean
public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForHash();
}
@Bean
public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
return redisTemplate.opsForValue();
}
@Bean
public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForList();
}
@Bean
public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForSet();
}
@Bean
public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForZSet();
}
}
配置客户端连接数
当并发数与客户端都与服务器端达到一致后,还是延时过久,就要考虑应用服务器的网络带宽问题