使用连接池连接
与SpringBoot结合使用
添加依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.0.1</version>
</dependency>
配置连接池
在application.properties文件中
redis.maxTotal=10 //表示最大连接数
redis.minIdle=1 //表示空闲连接数
redis.host=localhost //连接地址
配置连接
@SpringBootApplication
public class DemoApplication {
//依赖注入,连接池配置属性
@Value("${redis.maxTotal}")
private int maxTotal;
@Value("${redis.minIdle}")
private int minIdle;
@Value("${redis.host}")
private String host;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
//创建连接池
@Bean
public JedisPool pool(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(maxTotal);
config.setMinIdle(minIdle);
JedisPool pool = new JedisPool(config, host);
return pool;
}
}
将配置封装成对象,注入直接调用
@Component
//只读取配置文件中以redis开头的属性
@ConfigurationProperties(prefix = "redis")
public class RedisConfig {
private int maxTotal;
private int minIdle;
private String host;
public int getMaxTotal() {
return maxTotal;
}
public void setMaxTotal(int maxTotal) {
this.maxTotal = maxTotal;
}
public int getMinIdle() {
return minIdle;
}
public void setMinIdle(int minIdle) {
this.minIdle = minIdle;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
}
@SpringBootApplication
public class DemoApplication {
@Autowired
private RedisConfig redisConfig;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
//创建连接池
@Bean
public JedisPool pool(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(redisConfig.getMaxTotal());
config.setMinIdle(redisConfig.getMinIdle());
JedisPool pool = new JedisPool(config, redisConfig.getHost());
return pool;
}
}
使用连接池
@Controller
public class RedisController {
@Autowired
private JedisPool pool;
@Autowired
private User user;
@RequestMapping("/user")
@ResponseBody
public String user(String key,String value){
try (Jedis resource = pool.getResource()){
resource.set(key,value);
}
return "OK";
}
@RequestMapping("/json")
@ResponseBody
public String json() throws JsonProcessingException {
User user = new User();
user.setName("zhangsan111");
user.setAge(18);
user.setSex("男");
ObjectMapper om = new ObjectMapper();
String json = om.writeValueAsString(user);
try (Jedis resource = pool.getResource()){
resource.set("zs",json);
}
return "YES";
}
}