SpringBoot集成Redis数据库,实现缓存管理

目录一、Redis简介二、Spring2.0集成Redis1、核心依赖2、配置文件3、简单测试案例4、自定义序列化配置5、序列化测试三、源代码地址

一、Redis简介

Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch。这些案例整理好后,陆续都会上传Git。SpringBoot2 版本,支持的组件越来越丰富,对Redis的支持不仅仅是扩展了API,更是替换掉底层Jedis的依赖,换成Lettuce。本案例需要本地安装一台Redis数据库。

二、Spring2.0集成Redis

1、核心依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

2、配置文件

#端口server:port:8008spring:application:#应用名称name:node08-boot-redis#redis配置redis:host:127.0.0.1#超时连接timeout:1000msjedis:pool:#最大连接数据库连接数,设0为没有限制max-active:8#最大等待连接中的数量,设0为没有限制max-idle:8#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。max-wait:-1ms#最小等待连接中的数量,设0为没有限制min-idle:0

这样Redis的环境就配置成功了,已经可以直接使用封装好的API了。

3、简单测试案例

importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.data.redis.core.StringRedisTemplate;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjavax.annotation.Resource;importjava.util.concurrent.TimeUnit;@RestControllerpublicclassRedisController{@ResourceprivateStringRedisTemplatestringRedisTemplate;@RequestMapping("/setGet")publicStringsetGet(){stringRedisTemplate.opsForValue().set("cicada","smile");returnstringRedisTemplate.opsForValue().get("cicada");}@ResourceprivateRedisTemplateredisTemplate;/***设置Key的有效期10秒*/@RequestMapping("/setKeyTime")publicStringsetKeyTime(){redisTemplate.opsForValue().set("timeKey","timeValue",10,TimeUnit.SECONDS);return"success";}@RequestMapping("/getTimeKey")publicStringgetTimeKey(){//这里Key过期后,返回的是字符串'null'returnString.valueOf(redisTemplate.opsForValue().get("timeKey"));}}

4、自定义序列化配置

importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;importorg.springframework.data.redis.serializer.StringRedisSerializer;importjava.io.Serializable;/***Redis配置*/@ConfigurationpublicclassRedisConfig{privatestaticfinalLoggerLOGGER=LoggerFactory.getLogger(RedisConfig.class);/***序列化配置*/@BeanpublicRedisTemplate<String,Serializable>redisTemplate(LettuceConnectionFactoryredisConnectionFactory){LOGGER.info("RedisConfig==>>redisTemplate");RedisTemplate<String,Serializable>template=newRedisTemplate<>();template.setKeySerializer(newStringRedisSerializer());template.setValueSerializer(newGenericJackson2JsonRedisSerializer());template.setConnectionFactory(redisConnectionFactory);returntemplate;}}

5、序列化测试

importcom.boot.redis.entity.User;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjavax.annotation.Resource;importjava.util.ArrayList;importjava.util.List;@RestControllerpublicclassSerializeController{@ResourceprivateRedisTemplateredisTemplate;@RequestMapping("/setUser")publicStringsetUser(){Useruser=newUser();user.setName("cicada");user.setAge(22);List<String>list=newArrayList<>();list.add("小学");list.add("初中");list.add("高中");list.add("大学");user.setEducation(list);redisTemplate.opsForValue().set("userInfo",user);return"success";}@RequestMapping("/getUser")publicUsergetUser(){return(User)redisTemplate.opsForValue().get("userInfo");}}

三、源代码地址

GitHub地址:知了一笑https://github.com/cicadasmile/spring-boot-base码云地址:知了一笑https://gitee.com/cicadasmile/spring-boot-base

以上就是SpringBoot集成Redis数据库,实现缓存管理的详细内容,更多关于SpringBoot集成Redis的资料请关注其它相关文章!

人生重要的不是所站的位置,而是所朝的方向

SpringBoot集成Redis数据库,实现缓存管理

相关文章:

你感兴趣的文章:

标签云: