SpringBoot整合Redis实现简单的set、get
时间:2019-08-23
本文章向大家介绍SpringBoot整合Redis实现简单的set、get,主要包括SpringBoot整合Redis实现简单的set、get使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、导入pom.xml文件相关的依赖并配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
以下是在application.xml中进行redis相关的配置(本文采用的springboot版本为2.1.7):
######配置redis####### # Redis 数据库索引(默认为 0) spring.redis.database=0 # Redis 服务器地址 spring.redis.host=127.0.0.1 # Redis 服务器连接端? spring.redis.port=6379 # Redis 服务器连接密码(默认为空) spring.redis.password= # 连接池最?连接数(使?负值表示没有限制) 默认 8 spring.redis.lettuce.pool.max-active=8 # 连接池最?阻塞等待时间(使?负值表示没有限制) 默认 -1 spring.redis.lettuce.pool.max-wait=-1 # 连接池中的最?空闲连接 默认 8 spring.redis.lettuce.pool.max-idle=8 # 连接池中的最?空闲连接 默认 0 spring.redis.lettuce.pool.min-idle=0
项目运行前记得启动redis的server服务器。。
二、配置Redis的set、get模板
这里配置了两个模板,一个是设置存放的值为String的模板redisTemplateForStr,一个是设置存放的值为Object的模板redisTemplateForObj:
@Configuration @EnableCaching public class MyRedisConfig extends CachingConfigurerSupport { @Bean(name="redisTemplateForStr") public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, String> template = new RedisTemplate<>(); RedisSerializer<String> redisSerializer = new StringRedisSerializer(); template.setConnectionFactory(factory); //key序列化方式,如果不设置,会有乱码 template.setKeySerializer(redisSerializer); //value序列化 template.setValueSerializer(redisSerializer); //value hashmap序列化 template.setHashValueSerializer(redisSerializer); //key haspmap序列化 template.setHashKeySerializer(redisSerializer); return template; } @Bean(name="redisTemplateForObj") public RedisTemplate<String, Object> redisTemplate2(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); template.setConnectionFactory(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); // key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson template.setValueSerializer(jackson2JsonRedisSerializer); // hash的value序列化方式采用jackson template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } }
三、然后编写相应的工具类
/** * 利用RedisTemplate进行相关set、get方法的封装 */ @Repository public class RedisTemplateForGetSet { @Resource(name="redisTemplateForObj") RedisTemplate redisTemplate; @Resource(name="redisTemplateForStr") RedisTemplate redisTemplateStr; public <T> T getObjectFromRedis(String id){ return (T)redisTemplate.opsForValue().get(id); } public void setObjectToRedis(String id, Object object){ redisTemplate.opsForValue().set(id,object); } public void setCheckCodeToRedis(String id, String checkCode){ redisTemplateStr.opsForValue().set(id,checkCode); } public String getCheckCodeFromRedis(String id){ String checkCode = (String)redisTemplateStr.opsForValue().get(id); return checkCode; } }
四、测试
在注解为RestController的控制层中进行测试:
@RequestMapping("redis") public TUser testRedis(TUser tUser){ String key = tUser.getId().toString(); userRedisTemplate.setObjectToRedis(key,tUser); TUser user = userRedisTemplate.getObjectFromRedis(key); System.out.println(user.toString()); return user; }
以下是测试结果:
以上便是简单的redis配置并进行简单的set、get测试。
原文地址:https://www.cnblogs.com/ring2/p/11399388.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端开发:font属性与font-variant如何使用?
- spring-boot使用aop进行多数据源切换
- CRC校验原来这么简单
- centos7安装kubernetes教程
- spring-boot自定义starter
- 实操 | kafka如何手动异步提交offset
- 解惑 | 为什么我根据时间戳获得的offset为空呢?
- spring-boot使用aop进行日志记录
- openGauss备机追数Catchup过程中主库写入阻塞问题
- openGauss830版本中对于备份模块的增强与当前问题
- spring boot自动配置原理
- 网站日志分析完整实践
- 聊聊分布式下的WebSocket解决方案
- pod安装、更新库失败,github连接超时问题
- Mysql如何给字符串添加索引(前缀索引)