一、环境搭建
1、在前面的Demo的基础上在pom文件上添加上redis的starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、在全局配置文件中指定配置
spring.redis.host=ip
spring.redis.port=6379
#如果有密码
spring.redis.password=
#连接超时时间(毫秒)
spring.redis.timeout=10000
#连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
#连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
#连接池中最大空闲数
spring.redis.jedis.pool.max-idle=8
#连接池中最小空闲连接
spring.redis.jedis.pool.min-idle=3
3、启动项目RedisCacheConfiguration也是匹配的,说明这次使用的缓存配置会使用Redis缓存的配置
![1ef73d8e531776991a8f4b5c37b33a21.png](https://img-blog.csdnimg.cn/img_convert/1ef73d8e531776991a8f4b5c37b33a21.png)
二、RedisTemplate&序列化机制
1、在RedisAutoConfiguraion自动配置类中会自动注册RedisTemplate组件和StringRedisTemplate组件
二者区别:
RedisTemplate:k-v都是Object类型
StringRedisTemplate:k-v都是String类型
Spring给用户提供了两个可用的模板,就像使用Hibernate会有HibernateTemplate,使用jdbc会有JdbcTemplate
![025cd1495ad229a65ab2dca96ec813dd.png](https://img-blog.csdnimg.cn/img_convert/025cd1495ad229a65ab2dca96ec813dd.png)
2、所以我们使用的话就直接注入两个模板(注:使用RedisTemplate存储对象到缓存中,该对象所属的类一定要实现Serializable接口)
Redis五大数据类型:String(字符串)、Hash(哈希表)、Set(集合)、List(链表)、Zset(有序集合)对应操作的方法如下
- opsForValue[String]
- opsForHash[Hash]
- opsForSet[Set]
- opsForList[List]
- opsForZset[Zset]
@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot09CacheApplicationTests {
@Autowired
private EmployeeMapper employeeMapper;
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void test01() {
ValueOperations<String, String> string = stringRedisTemplate.opsForValue();
string.set("k1", "Hello");
}
@Test
public void test02() {
//源码可以找到默认使用JdkSerializationRedisSerializer
ValueOperations<Object, Object> string = redisTemplate.opsForValue();
Employee employee = employeeMapper.selectEmployeeById(1);
string.set("emp01", employee);
}
3、执行上述方法测试,查看redis缓存中的数据对象是被序列化成了二进制
![ad5ee15ea2369a94ff2cca6ae3fa2123.png](https://img-blog.csdnimg.cn/img_convert/ad5ee15ea2369a94ff2cca6ae3fa2123.png)