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即可