springBoot 集成使用 redis
一.概述
Jedis 是 Redis 官方推出的一款面向 Java 的客户端,提供了很多接口供 Java 语言调用。可以在 Redis 官网下载. Spring-data-redis 是 spring 大家族的一部分,提供了在 srping 应用中通 过简单的配置访问 redis 服务,对 reids 底层开发包(Jedis, JRedis, and RJC)进 行了高度封装,RedisTemplate 提供了 redis 各种操作
spring-data-redis 针对 jedis 提供了如下功能
-
连接池自动管理,提供了一个高度封装的“RedisTemplate”类.
-
针对 jedis 客户端中大量 api 进行了归类封装,将同一类型操作封装为 operation 接口
ValueOperations:简单 K-V 操作 SetOperations:set 类型数据操作 ZSetOperations:zset 类型数据操作 HashOperations:针对 map 类型的数据操作 ListOperations:针对 list 类型的数据操
3.将事务操作封装,有容器控制。
4.针对数据的“序列化/反序列化”(对象转字符,字符转对象),提供了多种可选择策略(RedisSerializer) JdkSerializationRedisSerializer:POJO 对象的存取场景,使用 JDK 本身 序列化机制. StringRedisSerializer:Key 或者 value 为字符串的场景,根据指定的 charset 对数据的字节序列编码成 string,是“new String(bytes, charset)”和 “string.getBytes(charset)”的直接封装。是最轻量级和高效的策略。 JacksonJsonRedisSerializer:jackson-json 工具提供了 javabean 与 json 之 间的转换能力,可以将 pojo 实例序列化成 json 格式存储在 redis 中,也可以将 json 格式的数据转换成 pojo 实例
二.搭建
1.添加 redis 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.配置连接redis
spring:
redis:
host: 192.168.31.100
port: 6379
password: 111
database: 0
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 8 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
timeout: 5000ms # 连接超时时间(毫秒)
3.注入RedisTemplate
@Autowired
RedisTemplate redisTemplate;
4.测试
//获得操作字符串数据结构的对象
redisTemplate.opsForValue();
redisTemplate.opsForValue().set("name", "aa");
redisTemplate.opsForValue().set("users", users,10*1000, TimeUnit.MILLISECONDS);
redisTemplate.hasKey("name");
redisTemplate.opsForValue().get("name");
redisTemplate.delete("users");
//获得操作hash和list数据结构的对象
Hashoperations hashoperations = redisTemplate.opsForHash();
Listoperations listoperations = redisTemplate.opsForList();/
//序列化键值
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<User>(User.class));