当前位置: 首页 > news >正文

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

一、引入依赖

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 连接字符串的标准格式。

http://www.dtcms.com/a/324750.html

相关文章:

  • Node.js面试题及详细答案120题(01-15) -- 基础概念篇
  • Leaflet地图高亮与编辑功能实现
  • 【最后203篇系列】031 构建MCP尝试
  • signed 和 unsigned 类型说明符
  • 嵌套-列表存储字典,字典存储列表,字典存储字典
  • Linux 路由子系统深度分析:框架、实现与代码路径
  • web刷题3
  • 商业解决方案技术栈总结
  • Python 获取对象信息的所有方法
  • 基于Spring Boot和SSE的实时消息推送系统
  • 三数之和 Java
  • 人工智能系列(7)人工神经网络中的无监督学习
  • C语言-数组和指针练习题合集(一)
  • C语言深度剖析
  • 网页五子棋测试
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-关于我们
  • 2025最新免费的大模型和免费的大模型API有哪些?(202508更新)
  • 秋招春招实习百度笔试百度管培生笔试题库百度非技术岗笔试|笔试解析和攻略|题库分享
  • 冒泡排序实现以及优化
  • WebSocket集群方案解析与实现
  • My APK 安卓版:高效管理手机应用的工具软件
  • windows的cmd命令【持续更新】
  • Linux应用软件编程---文件操作1(fopen、fclose、fgetc/fputc、fgets/fputs)
  • 什么是浏览器标识?
  • 【Docker进阶实战】从多容器编排到集群部署
  • TSF应用开发与运维部署
  • 个人笔记Mybatis2
  • 医学统计(现况调查的统计分析策略1)
  • 电脑使用“碎片整理”程序的作用
  • 基于ECharts的智慧社区数据可视化