spring boot 对于reids设计,主要是通过redisConnection来简介redis:
其中,redisconnection中,默认的连接器为:
所以在pom文件中,若我们采用jedis作为客户端(Springboot推荐)去连接redis,则可引入:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.0.0</version>
</dependency>
同时我们可以看到,由于spring-boot-starter中,默认的连接器还支持lettucConnection,因此在可排除lettuceconnection
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.2.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
至此,spring-boot 项目中,pom文件所需要的依赖已全部引入;
对于启动类的配置就比较简单了:
1.在springboot容器启动的时候,可使用JedisConnectionFactory,来创建与redis的连接(这里仅使用单机版redis作为参考):
@Bean(name = "jedisConnectionFactory")
public JedisConnectionFactory getJedisConnectionFactory(@Qualifier(value = "redisStandaloneConfiguration") RedisStandaloneConfiguration redisStandaloneConfiguration){
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration);
return jedisConnectionFactory;
}
2.在创建JedisConnectionFactory,发现需要配置redis连接池,因此可先创建连接池:
@Bean(name = "redisStandaloneConfiguration")
public RedisStandaloneConfiguration getJedisPoolConfig(@Value("${spring.redis.host}")String host,
@Value("${spring.redis.port}")Integer port,
@Value("${spring.redis.password}")String password){
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(host);
redisStandaloneConfiguration.setPort(port);
redisStandaloneConfiguration.setPassword(password);
return redisStandaloneConfiguration;
}
3.创建RedisTemplate,RedisTemplate是一个强大的类,它首先从redisConnectionFactory获取连接,然后执行redis操作指令,最后还能关闭redis的连接,因此在spring启动中,需在容器中创建对象,用于操作reids:
@Bean
public RedisTemplate getRedisTemplate(@Qualifier(value = "jedisConnectionFactory") JedisConnectionFactory jedisConnectionFactory){
RedisTemplate redisTemplate = new StringRedisTemplate(jedisConnectionFactory);
return redisTemplate;
}
4.如需要,可对redisTemplate进行二次封装处理成utils即可