Spring整合Redis步骤

2021/4/13 2:26:08

本文主要是介绍Spring整合Redis步骤,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

引入依赖

可通过maven Repository查找到redis的坐标
https://mvnrepository.com/

#### 复制坐标
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>2.4.4</version>
</dependency>

配置redis

在配置文件application.properties中配置

# 选择哪一个数据库,redis一共16个数据库
spring.redis.database=11
# 设置地址
spring.redis.host=localhost
# 设置端口
spring.redis.port=6379

编写配置类,构造RedisTemplatere

通过redis的自动配置类可以看到自动配置的RedisTemplat是如下:

@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> template = new RedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        return template;
    }

可以看到RedisTemplat的key和value都是Object,不方便后面的使用,因此为redis写一个配置类,将RedisTemplat的key修改为String类型,自定义的配置类如下

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);

        // 设置key的序列化方式
        template.setKeySerializer(RedisSerializer.string());
        // 设置value的序列化方式
        template.setValueSerializer(RedisSerializer.json());
        // 设置hash的key的序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        // 设置hash的value的序列化方式
        template.setHashValueSerializer(RedisSerializer.json());

        template.afterPropertiesSet();
        return template;
    }

}

测试

新建一个测试类,即可测试redis

@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)   //将该类作为配置类
public class redisTests {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testStrings(){
        String redisKey = "test:count";
        redisTemplate.opsForValue().set(redisKey,1);
        System.out.println(redisTemplate.opsForValue().get(redisKey));
        System.out.println(redisTemplate.opsForValue().increment(redisKey));
        System.out.println(redisTemplate.opsForValue().decrement(redisKey));
    }}


这篇关于Spring整合Redis步骤的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程