# springboot-redis
**Repository Path**: MarkPolaris/springboot-redis
## Basic Information
- **Project Name**: springboot-redis
- **Description**: springboot整合redis
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-08-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
> 整合mybatis请看springboot-demo02/[README.md](https://gitee.com/MarkPolaris/springboot-demo02)
整合通用mapper请看springboot-demo01/wiki/[整合通用mapper](https://gitee.com/MarkPolaris/springboot-demo02/wikis/springboot%E6%95%B4%E5%90%88%E9%80%9A%E7%94%A8Mapper?sort_id=1582526)
1.添加依赖
```xml
org.apache.commons
commons-pool2
org.springframework.boot
spring-boot-starter-data-redis
```
2.配置redis参数 application.yml
```yml
spring:
redis:
# Redis数据库索引(默认为0)
database: 0
# Redis服务器地址
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: 200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 连接池中的最大空闲连接
max-idle: 10
# 连接池中的最小空闲连接
min-idle: 0
# 连接超时时间(毫秒)
shutdown-timeout: 10000ms
```
3.启动一个测试类
```java
public class AdminServiceImplTest extends SpringbootRedisApplicationTests {
@Resource
private AdminService adminService;
@Test
public void findAll() {
List all = adminService.findAll();
// log.info("redis: "+all);
String value = adminService.getValue();
log.info("redis: "+value);
}
}
```
4.运行测试,出现报错,是因为实体类没有实现序列化
```text
org.springframework.data.redis.serializer.SerializationException: Cannot serialize;
```
5.在测试一次

ok,就是可读性差一点,可以通过配置调整
6.配置可序列化器 完整测试类
> redisTemplate 中存取数据都是字节数组。当redis中存入的数据是可读形式而非字节数组时,使用redisTemplate取值的时候会无法获取导出数据,获得的值为null。可以使用 StringRedisTemplate 试试。
```java
package com.mark.springbootredis.service.impl;
import com.mark.springbootredis.SpringbootRedisApplicationTests;
import com.mark.springbootredis.entity.Admin;
import com.mark.springbootredis.service.AdminService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import javax.annotation.Resource;
import java.util.List;
import static org.junit.Assert.*;
/**
* @Author: MARK
* @Date: 2019/8/20 08:18
* @Version: 1.0.0
* @Description:
*/
@Slf4j
public class AdminServiceImplTest extends SpringbootRedisApplicationTests {
@Resource
private AdminService adminService;
@Resource
private RedisTemplate redisTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Test
public void findAll() {
// redisTemplate.
//创建一个序列化器,让key value可读性好一点
RedisSerializer redisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(redisSerializer);
// redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); 加了读取报错 所以还是不加了
List adminList = adminService.findAll();
redisTemplate.opsForValue().set("adminList", adminList);
// redisTemplate.setValueSerializer(redisSerializer);
// List adminList = (List)redisTemplate.opsForValue().get("adminList");
String name = stringRedisTemplate.opsForValue().get("name");
// log.info("\nname=" + name+"\nadminList=" + adminList);
// List all = adminService.findAll();
//存值测试
// redisTemplate.opsForValue().set("adminList", all);
}
}
```

> 说明配置成功了
>参考:
[SpringBoot--实战开发--整合Redis(十四)](https://www.jianshu.com/p/40be9762e6b7)
[StringRedisTemplate说明](https://www.cnblogs.com/slowcity/p/9002660.html)
> 用IDEA写markdown时发现图片不好整上来,想着能有一个这方面的markdown插件就好了,结果搜了一下还真有
截图后直接Ctrl V就可以了 图片不是存放在图床中而是项目中 还可以接受吧 还有几个小功能 不错


