【redis初阶】------redis客户端(1)

发布于:2025-08-11 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、引入依赖

Java 操作 redis 的客户端有很多. 其中最知名的是 jedis.

创建 maven 项目, 把 jedis 的依赖拷贝到 pom.xml 中

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>5.2.0</version>
</dependency>

二、配置端口转发

从 Windows 开发机访问 Linux 云服务器 Redis 的实现逻辑:

一、连接需求背景

我们在 Windows 开发机(IDE 写 Java 代码) 想操作 Linux 云服务器上的 Redis,但直接访问有网络障碍:

  • 云服务器 Redis 默认限制:Redis 端口(如 6379)被防火墙保护,无法直接通过公网访问(否则易被黑客入侵)。
  • 本地网络特性:Windows 开发机是内网环境(类似小区住宅,被 NAT 保护),无法直接暴露给公网

核心需求:安全访问云服务器 Redis,同时不暴露 Redis 端口到公网。

二、核心问题与矛盾

直接开放 Redis 端口到公网 ≈ “给服务器开大门”,风险极高(Redis 无复杂认证时,黑客可暴力破解)。但开发又需要从 Windows 访问,形成矛盾:

三、解决方案原理:SSH 端口转发(跳板机制)

利用 SSH 协议的端口转发功能,把云服务器的 Redis 端口(如 6379)映射到本地 Windows 的某个端口(如 8888),实现 “间接访问”

  • 类比:SSH 是 “安全通道”,把云服务器的 Redis 端口 “搬” 到本地,Windows 访问 127.0.0.1:8888 ≈ 访问云服务器的 6379
完整流程拆解(结合流程图)

以下按 准备 → 配置 → 验证 → 开发 步骤,配合流程图详细说明

1. 环境准备
  • 角色:
    • Windows 开发机(内网,运行 IDE、SSH 客户端)
    • Linux 云服务器(公网 IP,运行 Redis、SSH 服务端)
  • 前提:
    • 云服务器已安装 Redis(默认端口 6379,需配置 bind 0.0.0.0 和 protected-mode no 允许内网访问)
    • Windows 可通过 SSH 客户端(如 XShell)连接云服务器
2. SSH 端口转发配置(关键步骤)

通过 SSH 客户端(如 XShell)配置 本地端口转发,把云服务器的 6379 映射到 Windows 的 8888

3. 验证端口转发是否生效

Windows 的控制台执行命令

netstat -ano | findstr 8888

→ 说明本地 8888 端口已被 SSH 客户端监听,转发规则生效。

4. Java 代码连接(开发阶段)

通过 Jedis 连接 本地映射端口 8888,间接操作云服务器 Redis:

public static void main(String[] args) {
    // 连接池指向本地 8888(实际映射到云服务器 6379)
    JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
    
    try (Jedis jedis = jedisPool.getResource()) {
        // 测试连接(Redis 会返回 PONG)
        String pong = jedis.ping();
        System.out.println("Redis 响应: " + pong);
    }
}

在 Jedis 中使用 tcp:// 前缀是因为 Redis 是基于 TCP 协议 进行通信的,这是 Jedis 连接字符串的标准格式。


网站公告

今日签到

点亮在社区的每一天
去签到