简介:RedisTemplate 集成
一、添加依赖
<!--redis依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.4.2</version> </dependency> <!--补充redis依赖 创造bean失败--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.5</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.4</version> </dependency>
二、创建一个配置类
@Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); RedisSerializer<String> redisSerializer = new StringRedisSerializer(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(redisSerializer); redisTemplate.setHashKeySerializer(redisSerializer); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer()); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer()); return redisTemplate; } private Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer() { Jackson2JsonRedisSerializer<Object> jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); jsonRedisSerializer.setObjectMapper(objectMapper); return jsonRedisSerializer; } }
三、创建一个测试Controller
@RestController public class TestController {@Autowired private RedisTemplate redisTemplate; @GetMapping("") public String test() { return "hello world"; }@ApiOperation("参数设置 英文") @GetMapping("/test/redisEn") public void testRedis() { redisTemplate.opsForValue().set("name", "congbao"); System.out.println("英文key设置成功"); } @ApiOperation("参数设置 中文") @GetMapping("/test/redisZh") public void redisZh() { redisTemplate.opsForValue().set("name2", "葱爆"); System.out.println("英文key设置成功"); } @ApiOperation("查询是否存在英文key ") @GetMapping("/test/redisHasEnKey") public Boolean testRedisHasEnKey() { Boolean isExiKey = redisTemplate.hasKey("name"); if (isExiKey) { System.out.println("存在英文key"); } return isExiKey; } @ApiOperation("查询是否存在中文key ") @GetMapping("/test/redisHasZhKey") public Boolean testRedisHasZhKey() { Boolean isExiKey = redisTemplate.hasKey("name2"); if (isExiKey) { System.out.println("存在中文key"); } return isExiKey; }}
四、application 配置文件 配置redis
redis: host: 127.0.0.1 port: 6379 database: 0 lettuce: pool: max-active: 20 max-idle: 8 max-wait: -1 min-idle: 0
五、测试
利用swagger文档测试
设置英文Key
点击对应接口 Try it out
同理 设置中文key 是否存在英文key 是否存在中文key也是
对name修改为中文