跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java 及 Spring 环境下 Redis 操作详解

综述由AI生成在 Java 原生环境和 Spring 框架下操作 Redis 的方法。内容包括 Maven 依赖引入、Jedis 客户端的基本使用(String、List、Hash、Set、ZSet 类型),以及通过 XShell 配置端口转发实现本地连接。Spring 部分展示了如何集成 Spring Data Redis 并使用 StringRedisTemplate 进行数据操作。提供了具体的代码示例和常用命令说明。

清酒独酌发布于 2026/3/28更新于 2026/5/3030 浏览
Java 及 Spring 环境下 Redis 操作详解

Java 环境配置

1. 创建 Maven 项目

2. 导入依赖

<!-- redis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.2</version>
</dependency>

此处使用的是 Jedis(提供的 API 和 Redis 命令高度一致)。

3. 配置端口转发

为了本地调试方便,将云服务器的 Redis 端口映射到本地主机中。在 XShell 中配置端口转发规则,访问本地的 8888 端口即相当于访问对应服务器的 6379 端口。

二、基础命令示例

通用操作
public static void test(Jedis jedis) {
    System.out.println("set 和 get 使用");
    // 清空数据库
    jedis.flushAll();
    jedis.set("key", "k1");
    jedis.set("key2", "k2");
    jedis.set("key3", "k3");
    String key = jedis.get("key");
    String key2 = jedis.get("key2");
    String key3 = jedis.get("key3");
    System.out.println("key: " + key);
    System.out.println("key2: " + key2);
    System.out.println("key3: " + key3);
    System.out.println("exists 和 del 使用");
    boolean result = jedis.exists("key");
    System.out.println("result:" + result);
    result = jedis.exists("key1111");
    System.out.println("result:" + result);
    long del = jedis.del("key", "key2");
    result = jedis.exists("key");
    System.out.println("result:" + result);
    System.out.println("keys 使用");
    jedis.set("key", "k1");
    jedis.set("key2", "k2");
    Set<String> keys = jedis.keys("*");
    System.out.println("keys: " + keys);
    System.out.println("expire 和 ttl 使用");
    jedis.set("key4", "k4");
    jedis.expire("key4", 10);
    // 休眠 5s
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
    long ttl = jedis.ttl("key4");
    System.out.println("ttl: " + ttl);
    System.out.println("type 使用");
    jedis.flushAll();
    jedis.set("String", "1");
    String type = jedis.type("String");
    System.out.println("type: " + type);
    jedis.lpush("list", "111", "222", "333");
    type = jedis.type("list");
    System.out.println("type: " + type);
    jedis.sadd("set", "a", "b", "c");
    type = jedis.type("set");
    System.out.println("type: " + type);
    jedis.zadd("zset", 1.0, "zhangsan");
    type = jedis.type("zset");
    System.out.println("type: " + type);
    jedis.hset("hash", "f1", "v1");
    type = jedis.type("hash");
    System.out.println("type: " + type);
}
String 类型
public static void test(Jedis jedis) {
    // 清空数据库
    jedis.flushAll();
    System.out.println("mset 和 mget 使用");
    jedis.mset("k1", "111", "k2", "222", "k3", "333");
    List<String> mget = jedis.mget("k1", "k2", "k3", "k4");
    System.out.println("mget: " + mget);
    System.out.println("getrange 和 setrange 使用");
    jedis.set("k4", "abcdefgh");
    String k4 = jedis.getrange("k4", 0, 4);
    System.out.println("result: " + k4);
    jedis.setrange("k4", 0, "eeee");
    System.out.println("k4: " + jedis.get("k4"));
    System.out.println("append 使用");
    jedis.append("k4", "aaaaaa");
    System.out.println("k4: " + jedis.get("k4"));
    System.out.println("incr 和 decr 使用");
    jedis.set("k5", "111");
    System.out.println("k5: " + jedis.incr("k5"));
    System.out.println("k5: " + jedis.decr("k5"));
}
List 类型
public static void test(Jedis jedis) {
    jedis.flushAll();
    System.out.println("lpush 和 lrange 使用");
    jedis.lpush("key", "1", "2", "3", "4", "5");
    System.out.println("key: " + jedis.lrange("key", 0, -1));
    System.out.println("rpush, rpop, lpop 使用");
    jedis.rpush("key2", "1", "2", "3", "4", "5");
    System.out.println("key2: " + jedis.lrange("key2", 0, -1));
    System.out.println("lpop key2: " + jedis.lpop("key2"));
    System.out.println("rpop key2: " + jedis.rpop("key2"));
    System.out.println("llen 使用");
    System.out.println("len key2: " + jedis.llen("key2"));
}
Hash 类型
private static void test(Jedis jedis) {
    jedis.flushAll();
    System.out.println("hset 和 hget 使用");
    HashMap<String, String> hash = new HashMap<>();
    hash.put("f2", "v2");
    hash.put("f3", "v3");
    hash.put("f4", "v4");
    jedis.hset("key", hash);
    jedis.hset("key", "f1", "v1");
    System.out.println("key f1: " + jedis.hget("key", "f1"));
    System.out.println("key f5: " + jedis.hget("key", "f5"));
    System.out.println("hexists 使用");
    Boolean result = jedis.hexists("key", "f1");
    System.out.println("key f1 result: " + result);
    result = jedis.hexists("key", "f5");
    System.out.println("key f5 result: " + result);
    System.out.println("hkeys 和 hvals 使用");
    Set<String> hkeys = jedis.hkeys("key");
    System.out.println("hkeys: " + hkeys);
    List<String> hvals = jedis.hvals("key");
    System.out.println("hvals: " + hvals);
    System.out.println("hdel 使用");
    jedis.hdel("key", "f1");
    result = jedis.hexists("key", "f1");
    System.out.println("key f1 result: " + result);
    System.out.println("hmset 和 hmget 使用");
    List<String> hmget = jedis.hmget("key", "f1", "f2", "f3");
    System.out.println("hmget key: " + hmget);
}
Set 类型
public static void test(Jedis jedis) {
    jedis.flushAll();
    System.out.println("sadd 和 smembers 使用");
    jedis.sadd("key", "a", "b", "c", "d");
    Set<String> smembers = jedis.smembers("key");
    System.out.println("key: " + smembers);
    System.out.println("sismember, scard, spop 使用");
    boolean result = jedis.sismember("key", "a");
    System.out.println("result: " + result);
    long len = jedis.scard("key");
    System.out.println("key len: " + len);
    jedis.spop("key");
    System.out.println("key len: " + jedis.scard("key"));
    System.out.println("sinter 和 sinterstore");
    jedis.sadd("key2", "1", "2", "3", "4", "5");
    jedis.sadd("key3", "3", "4", "5", "6", "7");
    System.out.println("[key2 key3]sinter: " + jedis.sinter("key2", "key3"));
    long sinterstore = jedis.sinterstore("key4", "key2", "key3");
    System.out.println("sinterstore: " + sinterstore);
    System.out.println("key4: " + jedis.smembers("key4"));
}
ZSet 类型
public static void test(Jedis jedis) {
    jedis.flushAll();
    System.out.println("zadd 和 zrange 使用");
    jedis.zadd("key", 10.0, "zhangsan");
    Map<String, Double> hash = new HashMap<>();
    hash.put("lisi", 20.0);
    hash.put("wangwu", 30.0);
    jedis.zadd("key", hash);
    List<String> members = jedis.zrange("key", 0, -1);
    System.out.println("members: " + members);
    List<Tuple> key = jedis.zrangeWithScores("key", 0, -1);
    System.out.println("key: " + key);
    System.out.println("zcard, zscore 使用");
    long len = jedis.zcard("key");
    System.out.println("len key: " + len);
    Double score = jedis.zscore("key", "zhangsan");
    System.out.println("score: " + score);
    System.out.println("zrem, zrank 使用");
    Long zrank = jedis.zrank("key", "lisi");
    System.out.println("lisi rank: " + zrank);
    jedis.zrem("key", "zhangsan");
    System.out.println("lisi rank: " + jedis.zrank("key", "lisi"));
}

Spring 环境集成

创建 Spring Boot 项目时勾选 Spring Data Redis 依赖。 通过注入 StringRedisTemplate 操作 Redis,功能与 Jedis 类似。 建议将操作 Redis 的方法按业务类别分类组织,便于维护。 大部分命令逻辑与上述 Jedis 操作保持一致。

目录

  1. Java 环境配置
  2. 1. 创建 Maven 项目
  3. 2. 导入依赖
  4. 3. 配置端口转发
  5. 二、基础命令示例
  6. 通用操作
  7. String 类型
  8. List 类型
  9. Hash 类型
  10. Set 类型
  11. ZSet 类型
  12. Spring 环境集成
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 向量数据库的距离详解:常见向量距离度量与计算
  • AI 使用全攻略:12 个核心方法与实战技巧
  • ToDesk、顺网云与海马云部署 DeepSeek 性能横向评测
  • RISC-V 智能家居中控开发实战:硬件、固件与通信全链路
  • LVGL 嵌入式 GUI 开发指南:轻量高效开源方案
  • MySQL 与 Navicat 在 Windows 下的安装及配置教程
  • OpenClaw 爆火背后的 AI Agent 落地与部署观察
  • PaddleOCR-VL 服务性能调优:推理速度提升 50% 的方法
  • 长亭雷池 WAF 部署与实战指南
  • Python 代码加速运行的 8 种实用技巧
  • Spring AI 核心概念与 Spring Boot 集成实战
  • Claude Code 模型配置详解
  • Ubuntu 下 MySQL 数据库基础操作与字符集配置
  • Java Web 会话管理:Cookie 实战详解
  • Flutter与Web混合开发实践
  • Thinking Claude 提示词全文及核心逻辑解读
  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  • Docker 配置国内镜像源解决拉取镜像超时问题
  • WorkBuddy 深度体验:3 种核心模式与 Skill 技能包实战
  • 使用 Python 和强化学习训练 MOBA 游戏 AI 原理

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online