springboot2.x简单整合redis
程序员文章站
2022-07-07 11:22:14
...
springboot2.x简单整合redis
1.添加maven依赖
也可以在创建springboot项目时,选择redis模板
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.yml配置redis地址
spring:
redis:
host: ***.***.***.***
post: #默认是6379
安装redis ,这里我们采用 docker安装redis(很方便)。
使用 $docker pull redis 命令拉取镜像,
$docker images :查看镜像id
运行redis: $ docker run -d -p 6379:6379 --name myredis 镜像id
3.测试使用
springboot为什么提供了两个类来操作redis,一个是RedisTemplate,和StringRedisTemplate(继承自RedisTemplate),
第一个是主要用来操作对象的饿,第二个主要是用来操作字符串。
代码:
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void testRedis(){
stringRedisTemplate.opsForValue().append("624","qk" );
}
这样就可以把这个k-v键值对存进redis里面去了。更多的redis的命令可以在http://redisdoc.com/此网站上查找。
3.1使用RedisTemplate 来操作对象
@Test
public void testRedis(){
stringRedisTemplate.opsForValue().append("624","qk" );
Student student = studentdao.selectById(1);
redisTemplate.opsForValue().set("student",student );
}
通过测试,可以发现数据确实存进了redis,但是存的确是一些英文和数字等组成的数据。
原来RedisTemplate默认采用的是JDK的序列化策略,StringRedisTemplate默认采用的是String的序列化策略。
当然我们想要设置我们的数据格式,这里有两个方法,一个就是我们自定义RedisTemplate 模板,另外一个方法就是我们在 ”存“之前和”取“之后,对数据进行处理(这里我们采用json的数据格式)。
3.2 使用stringredistemplate操作对象
这里我们采用阿里的fastjson 来对json解析和生成
引入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>****</version>
</dependency>
测试代码:
@Test
public void testredis() {
Student student = studentdao.selectById(1);
// 将要放入缓存的对象先转换为JSON字符串
String jsonStr = com.alibaba.fastjson.JSON.toJSONString(student);
stringRedisTemplate.opsForValue().set("user3", jsonStr);
String getstr = stringRedisTemplate.opsForValue().get("user3");
//将json字符串转化成对象
Student getStudent = JSON.parseObject(getstr,Student.class );
System.out.println(getStudent);
}
这里仅仅是做一个简单使用,网上还有许多好的封装方法,大家可以搜搜,还有自定义模板也是一种不错的方法。