springboot整合redis

    技术2022-07-11  72

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

    Processed: 0.011, SQL: 9