目录
一、命令行客户端
二、图形界面的客户端
三、Java 客户端
3.1 SpringDataRedis
3.2 Jedis
3.2.1 连接池的配置
3.3 Lettuce
3.3.1 RedisTemplate 工具类实现
3.3.2 自定义序列化器
3.3.3 StringRedisTemplate
3.3.4 集群配置
3.3.4.1 刷新节点集群拓扑动态感应
四、RedisService 的封装
一、命令行客户端
-
h :指定要连接的 Redis 服务器的 IP 。
-
p :指定要连接的 Redis 的端口号。
二、图形界面的客户端
1. Redis Desktop Manager
官网为:https://resp.app/原来是 http://redisdesktop.com )。
2. RedisPlus
RedisPlus是为 Redis 可视化管理开发的一款开源免费的桌面客户端软件,支持 Windows 、Linux 、 Mac 三大系统平台, RedisPlus 提供更加高效、方便、快捷的使用体验,有着更加现代化的用户界面风格。RedisPlus的官网地址为 https://gitee.com/MaxBill/RedisPlus 。
3. Java 代码客户端
所谓Java 代码客户端就是一套操作 Redis 的 API ,其作用就像 JDBC 一样,所以 Java 代码客户端其实就是一个或多个 Jar 包,提供了对 Redis 的操作接口。
三、Java 客户端
3.1 SpringDataRedis
Spring Data Redis 是 Spring 框架提供的 数据访问抽象层,用于简化 Redis 在 Spring 应用中的使用。它不直接实现 Redis 通信,而是 整合 Jedis、Lettuce 等客户端,提供统一的 API 和更高级的功能,使开发者无需关心底层通信细节。
<!-- Spring Data Redis (默认使用 Lettuce) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
3.2 Jedis
1. 添加依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.7.0</version>
</dependency>
2. 创建项目并建立连接
private Jedis jedis;
@BeforeEach
void setUp() {
// 建立连接
jedis = new Jedis("192.168.150.101", 6379);
// 设置密码
jedis.auth("123321");
// 选择库
jedis.select(0);
}
3. 代码实现
@Test
void testString() {
// 插入数据,方法名称就是redis命令名称,非常简单
String result = jedis.set("name", "张三");
System.out.println("result = " + result);
// 获取数据
String name = jedis.get("name");
System.out.println("name = " + name);
}
4. 释放资源
@AfterEach
void tearDown() {
// 释放资源
if (jedis != null) {
jedis.close();
}
}
3.2.1 连接池的配置
Jedis 本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此我们推荐大家使用Jedis连接池代替 Jedis 的直连方式。
public class JedisConnectionFactory {
private static final JedisPool jedisPool;
static {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 最大连接
jedisPoolConfig.setMaxTotal(8);
// 最大空闲连接
jedisPoolConfig.setMaxIdle(8);
// 最小空闲连接
jedisPoolConfig.setMinIdle(0);
// 设置最长等待时间, ms
jedisPoolConfig.setMaxWaitMillis(200);
jedisPool = new JedisPool(jedisPoolConfig, "192.168.150.101", 6379,
1000, "123321");
}
// 获取Jedis对象
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
3.3 Lettuce
Lettuce是一个 Redis 的 Java 驱动包,Lettuce 翻译为生菜,没错,就是吃的那种生菜,所以它的 Logo 长这样: