可通过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>
在配置文件application.properties中配置
# 选择哪一个数据库,redis一共16个数据库 spring.redis.database=11 # 设置地址 spring.redis.host=localhost # 设置端口 spring.redis.port=6379
通过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)); }}