SpringBoot2整合Redis
SpringBoot2整合Redis
版本
SpringBoot: 2.1.9.RELEASE
结构
pom.xml
文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.9.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><packaging>jar</packaging><groupId>com.kaiming</groupId><artifactId>springredis</artifactId><name>${project.artifactId}</name><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version></dependency><!--Json序列化反序列化, SpringBoot 2.2.x及以上的版本默认引入 Jackson 相关依赖,所以手动引入--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
application.yml
文件
spring:redis:host: localhostdatabase: 0password: 123456port: 6379timeout: 3000jedis:pool:max-active: 8 # 连接池的最大活跃连接数max-wait: -1ms # 从连接池获取连接的最大等待时间,单位为毫秒(ms)max-idle: 8 # 连接池中的最大空闲连接数min-idle: 0 # 连接池中的最小空闲连接数
RedisConfig
配置类
@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();// 设置Redis连接工厂redisTemplate.setConnectionFactory(connectionFactory);// 使用 GenericJackson2JsonRedisSerializer 来序列化和反序列化 redis 的 key 值,确保 key 是可读的字符串GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();redisTemplate.setKeySerializer(RedisSerializer.string());redisTemplate.setHashKeySerializer(RedisSerializer.string());redisTemplate.setValueSerializer(jsonRedisSerializer);redisTemplate.setHashValueSerializer(jsonRedisSerializer);return redisTemplate;}
}
User
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {private Long id;private String userName;private String userSex;
}
test
测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {@Resourceprivate RedisTemplate<String, Object> redisTemplate;@Testpublic void test1(){redisTemplate.opsForValue().set("redis_test:strKey", "haohao");System.out.println(redisTemplate.opsForValue().get("redis_test:strKey"));}@Testpublic void test2(){User user = User.builder().id(1L).userName("xiaoming").userSex("男").build();redisTemplate.opsForValue().set("redis_test:user", user);User user2 = (User) redisTemplate.opsForValue().get("redis_test:user");System.out.println("user:" + user2.getId() + "," + user2.getUserName() + "," + user2.getUserSex());}
}