方法一请参考之前博文 spring boot 整合 redis

自己的版本  java8 + redis3.0 + springboot 2.0.0

1 spring boot已经支持集成 redis,在 mvn 中只需添加依赖即可。pom 配置片段如下

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0..RELEASE</version>
</parent> <!-- 添加 redis 缓存支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

1.2 对 redis 进行配置,修改配置文件 application.properties

## Redis 配置
## Redis数据库索引(默认为0)
spring.redis.database=
## Redis服务器地址
spring.redis.host=127.0.0.1
## Redis服务器连接端口
spring.redis.port=
## Redis服务器连接密码(默认为空)
spring.redis.password=

2.1 创建 RedisConfig 配置类

@Configuration
public class RedisConfig { @Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory){
StringRedisTemplate redisTemplate = new StringRedisTemplate(redisConnectionFactory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
/**
* 通用的序列化和反序列化设置
* ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。
*/
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
} }

2.2 创建 RedisService 泛型服务方法

@Service
public class RedisService <T> { @Autowired
private RedisTemplate redisTemplate; /**
* 一天有多少分钟,默认时间是一天
*/
private static final long MINUTES_OF_ONE_DAY = * ; /**
* 将 key,value 存放到redis数据库中,默认设置过期时间为一天
*
* @param key
* @param value
*/
public void set(String key, T value) {
set(key, value, MINUTES_OF_ONE_DAY);
} /**
* 将 key,value 存放到redis数据库中,设置过期时间单位是分钟
*
* @param key
* @param value
* @param expireTime 单位是秒
*/
public void set(String key, T value, long expireTime) {
ValueOperations<String, T> valueOperations = redisTemplate.opsForValue();
valueOperations.set(key,value,expireTime,TimeUnit.MINUTES);
} /**
* 判断 key 是否在 redis 数据库中
*
* @param key
* @return
*/
public boolean exists(final String key) {
return redisTemplate.hasKey(key);
} /**
* 获取 key 对应的字符串
* @param key
* @return
*/
public T get(String key) {
ValueOperations<String, T> valueOperations = redisTemplate.opsForValue();
return valueOperations.get(key);
} /**
* 获得 key 对应的键值,并更新缓存时间,时间长度为默认值
* @param key
* @return
*/
public T getAndUpdateTime(String key) {
T result = get(key);
if (result != null) {
set(key, result);
}
return result;
} /**
* 删除 key 对应的 value
* @param key
*/
public void delete(String key) {
redisTemplate.delete(key);
} }

3 接下来就可以使用 RedisService 进行缓存使用了。需要开启Redis服务,并没有设置密码

最新文章

  1. k8s入门系列之扩展组件(二)kube-ui安装篇
  2. List集合 导出 Excel
  3. 2D Tookit (一) 精灵切割
  4. Increase SharePoint Execution Timeout
  5. QT内置的ICON资源
  6. hdu2795--Billboard
  7. delphi 编码速度提升技能
  8. Python编程工具IDLE快捷键
  9. redis对比memcached
  10. linux文本处理常用指令总结
  11. jmeter- Java-POST接口使用get与json格式传参
  12. 我的acm vim 备忘
  13. [物理学与PDEs]第1章习题7 载流线圈的磁场
  14. 【PHP篇】运算及流程控制
  15. vue-cli脚手架之webpack.prod.conf.js
  16. [转帖] .NET FrameWork 版本的确定方法
  17. Spring 学习02
  18. struts2 中 Preparable 接口实现数据准备
  19. 【Bootstrap Method】Evaluating The Accuracy of a Classifier
  20. PAT甲 1008. Elevator (20) 2016-09-09 23:00 22人阅读 评论(0) 收藏

热门文章

  1. bootstrap设计站点中加入代码高亮插件
  2. mvn test
  3. java获取文件流
  4. java 自增和自减运算符
  5. windows下Oracle Tuxedo编译应用前需要配置的相关环境变量
  6. Receiver not registered.
  7. EntityFramework 5.0 CodeFirst 教程02-删除和修改/架构改变异常的处理
  8. ios中tableview侧栏的折叠
  9. C-pthread_cond_wait 详解
  10. JSONObject.parseObject(jsonStr);和JSONObject.fromObject(jsonStr);