一、项目说明
1.1 Redis客户端
关于 spring 整合 Redis 本用例提供两种整合方法:
-
Jedis: 官方推荐的 java 客户端,能够胜任 Redis 的大多数基本使用;
-
Redisson:也是官方推荐的客户端,比起 Redisson 提供了更多高级的功能,如分布式锁、集合数据切片等功能。同时提供了丰富而全面的中英文版本的说明文档。
Redis 所有语言官方推荐的客户端可以在 客户端 该网页查看,其中官方推荐的客户端使用了⭐️进行标注:
1.2 可视化软件
推荐使用 Redis Desktop Manager 作为可视化查看工具,可以直观看到存储的数据及其序列化的情况。
1.3 项目结构
-
Jedis 和 Redisson 的配置类和单元测试分别位于 config 和 test 下对应的包中,其中集群的配置类以 cluster 开头。
-
实体类 Programmer.java 用于测试 Redisson 序列化与反序列化。
1.4 基本依赖
除了 Spring 的基本依赖外,需要导入 Jedis 和 Redisson 对应的客户端依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.9.1</version>
</dependency>
<!--redisson 中部分功能依赖了netty -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.32.Final</version>
</dependency>
二、spring 整合 jedis
2.1 新建配置文件
新建配置文件及其映射类:
redis.host=127.0.0.1
redis.port=6379
# 连接超时时间
redis.timeout=2000
# 最大空闲连接数
redis.maxIdle=8
# 最大连接数
redis.maxTotal=16
@Configuration
@PropertySource(value = "classpath:jedis.properties")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RedisProperty {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private int port;
@Value("${redis.timeout}")
private int timeout;
@Value("${redis.maxIdle}")
private int maxIdle;
@Value("${redis.maxTotal}")
private int maxTotal