1.引入redis的启动器

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

2.指定redis的主机地址

3.自动注入模板

    @Autowired
StringRedisTemplate stringRedisTemplate; //k v都是字符串的 @Autowired
RedisTemplate<Object, Object> redisTemplate; //k v都是对象的

redsiAutoConfiguration:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
// package org.springframework.boot.autoconfigure.data.redis; import java.net.UnknownHostException;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate; @Configuration
@ConditionalOnClass({RedisOperations.class})
@EnableConfigurationProperties({RedisProperties.class})
@Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class})
public class RedisAutoConfiguration {
public RedisAutoConfiguration() {
} @Bean
@ConditionalOnMissingBean(
name = {"redisTemplate"}
)
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
} @Bean
@ConditionalOnMissingBean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}

 @Test
public void test01(){
stringRedisTemplate.opsForValue().append("k2","_append_k2");
}


测试保存对象:

@Test
public void test02(){
User user = new User();
user.setId(36);
user.setAddress("上海市黄浦区赵家桥285号");
user.setAge(21);
user.setSex(1);
user.setName("包青天");
redisTemplate.opsForValue().set("usr1",user);//默认以java序列化的形式保存
}


添加配置,使其能以json的数据形式存入redis中:

package ustc.anmin.springboot.service;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import ustc.anmin.springboot.bean.User; import java.net.UnknownHostException; @Configuration
public class MyRedisConfig { @Bean
public RedisTemplate<Object, User> userRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, User> template = new RedisTemplate();
//关键
template.setDefaultSerializer(new Jackson2JsonRedisSerializer<User>(User.class));
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}


 将redis设为缓存中间件:

1.在pom.xml中引入redis的starter

2.将数据格式转为json形式  要修改redisManager

    @Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
//初始化一个RedisCacheWriter
RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);
//设置CacheManager的值序列化方式为json序列化
RedisSerializer<Object> jsonSerializer = new GenericJackson2JsonRedisSerializer();
RedisSerializationContext.SerializationPair<Object> pair = RedisSerializationContext.SerializationPair
.fromSerializer(jsonSerializer);
RedisCacheConfiguration defaultCacheConfig=RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(pair);
//设置默认超过期时间是30秒
defaultCacheConfig.entryTtl(Duration.ofSeconds(30));
//初始化RedisCacheManager
return new RedisCacheManager(redisCacheWriter, defaultCacheConfig);
}

其余设置与spring-boot启动缓存的方式一样。

最新文章

  1. C++的友元类和友元函数实例
  2. [原创.数据可视化系列之六]使用openlyaers进行公网地图剪切
  3. [WebService] the namespace on the &quot;definitions&quot; element, is not a valid SOAP version
  4. Arduino101学习笔记(四)&mdash;&mdash; 数字IO
  5. AC日记——斗地主(dfs)
  6. http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/
  7. 利用css3动画和border来实现圆形进度条
  8. PHP windows下命令行用法 学习
  9. 减少JAVA GC
  10. Find Peak Element 解答
  11. int *p[4]与int (*q)[4]的区别
  12. Spring Security 入门(1-2)Spring Security - 从 配置例子例子 开始我们的学习历程
  13. Python库资源大全
  14. Nuke中新建线程的方法
  15. activiti流程跟踪图算法
  16. java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
  17. P3032 [USACO11NOV]二进制数独Binary Sudoku
  18. webAPI支持跨域
  19. ASP.NET Eval四种绑定方式 及详解
  20. 脚手架工具搭建VUE应用

热门文章

  1. MongoDB——morphia
  2. python 通过序列索引迭代
  3. java上传超大文件解决方案
  4. [CSP-S模拟测试]:走路(期望DP+分治消元)
  5. ARTS打卡计划第二周
  6. 09.变态跳台阶 Java
  7. SRS之SrsRtmpServer::connect_app详解
  8. mongodb aggregate 聚合 操作(扁平化flatten)
  9. Druid连接池(无框架)
  10. Linux - 搭建Web项目(Django + nginx + uwsgi)