SpringBoot集成Redis数据库|SpringBoot集成Redis数据库,实现缓存管理
目录
- 一、Redis简介
- 二、Spring2.0集成Redis
- 1、核心依赖
- 2、配置文件
- 3、简单测试案例
- 4、自定义序列化配置
- 5、序列化测试
- 三、源代码地址
一、Redis简介
Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch。这些案例整理好后,陆续都会上传Git。
SpringBoot2 版本,支持的组件越来越丰富,对Redis的支持不仅仅是扩展了API,更是替换掉底层Jedis的依赖,换成Lettuce。
本案例需要本地安装一台Redis数据库。
【SpringBoot集成Redis数据库|SpringBoot集成Redis数据库,实现缓存管理】
二、Spring2.0集成Redis
1、核心依赖
org.springframework.boot spring-boot-starter-data-redis
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、简单测试案例
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.concurrent.TimeUnit; @RestControllerpublic class RedisController {@Resourceprivate StringRedisTemplate stringRedisTemplate ; @RequestMapping("/setGet")public String setGet (){stringRedisTemplate.opsForValue().set("cicada","smile"); return stringRedisTemplate.opsForValue().get("cicada") ; }@Resourceprivate RedisTemplate redisTemplate ; /*** 设置 Key 的有效期 10 秒*/@RequestMapping("/setKeyTime")public String setKeyTime (){redisTemplate.opsForValue().set("timeKey","timeValue",10, TimeUnit.SECONDS); return "success" ; }@RequestMapping("/getTimeKey")public String getTimeKey (){// 这里 Key 过期后,返回的是字符串 'null'return String.valueOf(redisTemplate.opsForValue().get("timeKey")) ; }}
4、自定义序列化配置
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import java.io.Serializable; /** * Redis 配置 */@Configurationpublic class RedisConfig {private static final Logger LOGGER = LoggerFactory.getLogger(RedisConfig.class) ; /*** 序列化配置*/@Beanpublic RedisTemplate redisTemplate(LettuceConnectionFactoryredisConnectionFactory) {LOGGER.info("RedisConfig == >> redisTemplate "); RedisTemplate template = new RedisTemplate<>(); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); template.setConnectionFactory(redisConnectionFactory); return template; }}
5、序列化测试
import com.boot.redis.entity.User; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @RestControllerpublic class SerializeController {@Resourceprivate RedisTemplate redisTemplate ; @RequestMapping("/setUser")public String setUser (){User user = new User() ; user.setName("cicada"); user.setAge(22); List list = new ArrayList<>() ; list.add("小学"); list.add("初中"); list.add("高中"); list.add("大学"); user.setEducation(list); redisTemplate.opsForValue().set("userInfo",user); return "success" ; }@RequestMapping("/getUser")public User getUser (){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的资料请关注脚本之家其它相关文章!
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- (1)redis集群原理及搭建与使用(1)
- springboot整合数据库连接池-->druid
- SpringBoot中YAML语法及几个注意点说明
- springboot结合redis实现搜索栏热搜功能及文字过滤