【Redis】Redis 的常见客户端汇总
目录
一、命令行客户端
二、图形界面的客户端
三、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;@BeforeEachvoid setUp() {// 建立连接jedis = new Jedis("192.168.150.101", 6379);// 设置密码jedis.auth("123321");// 选择库jedis.select(0);}
3. 代码实现
@Testvoid testString() {// 插入数据,方法名称就是redis命令名称,非常简单String result = jedis.set("name", "张三");System.out.println("result = " + result); // 获取数据String name = jedis.get("name");System.out.println("name = " + name);}
4. 释放资源
@AfterEachvoid 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);// 设置最长等待时间, msjedisPoolConfig.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 长这样: