1、概念:
Redis 是一个开源(BSD 许可)的内存数据结构存储,用作数据库、缓存和消息中间件。 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型
2、redis自动配置
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
自动配置
- RedisAutoConfiguration 自动配置类。RedisProperties 属性类 --> spring.redis.xxx是对redis的配置
- 连接工厂是准备好的。LettuceConnectionConfiguration、JedisConnectionConfiguration
- 自动注入了RedisTemplate<Object, Object> : xxxTemplate,k:v都是Object;
- 自动注入了StringRedisTemplate;k:v都是String
- 底层只要我们使用 StringRedisTemplate、RedisTemplate两个类就可以操作redis
常见数据类型
- String:stringRedisTemplate.posForValue
- List:stringRedisTemplate.posForList
- Set(集合):stringRedisTemplate.posForSet
- Hash(散列):stringRedisTemplate.posForHash
- ZSet(有序集合):stringRedisTemplate.posForZSet
3、redis环境搭建
1、阿里云按量付费redis。经典网络
2、申请redis的公网连接地址
3、修改白名单 允许0.0.0.0/0 访问
4、使用客户端连接
5、yml配置redis
spring:
redis:
host: r-bp1nc7reqesxisgxpipd.redis.rds.aliyuncs.com
port: 6379
password: lfy:Lfy123456
6、执行程序
@Autowired
RedisTemplate redisTemplate;
@Test
void testRedis(){
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set("hello","world");
String hello = operations.get("hello");
System.out.println(hello);
}
7、查看客户端,redis已写入内容
8、序列化
如果保存对象,默认使用jdk序列化机制,序列化之后保存到redis中。
redisTemplate.opsForValue.set("person",id);
序列化的使用需要对象实现Serializable接口
public class Depart extends Model<Depart> implements Serializable
将数据已json形式保存,可以自定义personRedisTemplate,更改序默认列化规则
personRedisTemplate.opsForValue.set("person",id);
4、使用jedis
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 导入jedis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
redis依赖可导入,也可不导入
配置文件声明
spring:
redis:
host: r-bp1nc7reqesxisgxpipd.redis.rds.aliyuncs.com
port: 6379
password: lfy:Lfy123456
client-type: jedis
jedis:
pool:
max-active: 10 #连接池最大数目