一、导入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测试。

最新文章

  1. 【知识积累】try-catch-finally+return总结
  2. C语言版flappy bird黑白框游戏
  3. 初识 Burp Suite
  4. win7 IIS7环境下部署PHP 7.0
  5. C# 动态加载程序集dll (实现接口)
  6. REUSE_ALV_POPUP_TO_SELECT的使用技巧
  7. Linux中查看各文件夹大小命令du -h --max-depth=1
  8. [原创]一种Unity2D多分辨率屏幕适配方案
  9. cf B. Maximum Absurdity
  10. HTML基本标签大全
  11. 开源点评:Protocol Buffers介绍
  12. html 7.29
  13. nginx内置全局变量
  14. 移动应用/APP的测试流程及方法
  15. (转)Linux下增加交换分区的大小
  16. hadoop各个类及其作用
  17. Mongodb副本集--Out of memory: Kill process 37325 (mongod)
  18. jQuery做字符串分隔
  19. 【大数据系列】HDFS初识
  20. mysql-innodb的事务日志

热门文章

  1. 005.Ansible de palybook简单使用
  2. 从Mac中完全删除office
  3. 关于foreach总是报错invalid param等问题
  4. 关于暴力破解的一些学习笔记(pikachu)
  5. SSL/TLS 漏洞“受戒礼”,RC4算法关闭
  6. 十七, Oracle索引约束
  7. 实用的linux 命令(上)
  8. Json &amp; pickle 数据序列化
  9. docker中安装nginx,部署前端代码
  10. Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) B. Homecoming