Java链接redis

一、准备工作就像谈恋爱

首先咱们得来点仪式感是不是?打开你的Maven(Gradle玩家别打我),把这两个宝贝依赖给我焊死在pom.xml里:

<!-- 经典永不过时的Jedis -->

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>4.4.3</version>

</dependency>

<!-- 新贵Lettuce,异步猛如虎 -->

<dependency>

<groupId>io.lettuce</groupId>

<artifactId>lettuce-core</artifactId>

<version>6.3.0.RELEASE</version>

</dependency>

选Jedis还是Lettuce?这就好比选机械键盘的青轴红轴,Jedis直来直去像东北老铁,Lettuce异步操作像上海精英。我全都要.jpg


🚀二、连接实战比奶茶简单

方案A:直男式连接(Jedis极简版)

java 复制代码
public class Redis直男 {
    public static void main(String[] args) {
        // 这三个参数就像wifi密码,错一个都别想连
        Jedis jedis = new Jedis("localhost", 6379);
        jedis.auth("你的密码"); // 没密码?心真大!
        
        jedis.set("雷总语录", "站在风口上,猪都能飞起来");
        System.out.println(jedis.get("雷总语录")); // 打印出来都是情怀
        
        jedis.close(); // 用完不关?等着内存泄漏吧!
    }
}

方案B:优雅永不过时(Lettuce高定版)

复制代码
java 复制代码
public class Redis绅士 {
    public static void main(String[] args) {
        RedisURI uri = RedisURI.Builder
            .redis("localhost")
            .withPort(6379)
            .withAuthentication("default", "你的密码")
            .build();
            
        RedisClient client = RedisClient.create(uri);
        StatefulRedisConnection<String, String> connection = client.connect();
        
        RedisCommands<String, String> commands = connection.sync();
        commands.set("互联网思维", "专注、极致、口碑、快");
        System.out.println(commands.get("互联网思维"));
        
        connection.close(); // 优雅关闭才是王道
        client.shutdown();
    }
}

💊三、连接池是程序员的续命丹

知道为什么你头发越来越少吗?每次new连接就像拆一次性筷子!上连接池才是正解:

java 复制代码
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(20); // 最大连接数,别让你的Redis像早高峰地铁
poolConfig.setMaxIdle(10);  // 最大摸鱼连接数

try (JedisPool pool = new JedisPool(poolConfig, "localhost", 6379, 2000, "密码")) {
    Jedis jedis = pool.getResource();
    // 一顿操作猛如虎...
} // 自动回收连接,妈妈再也不用担心我忘关连接了

🚨四、避坑指南(血泪史)

  1. Timeout异常三连击

    1. 检查防火墙姿势

    2. 确认6379端口开了没

    3. 网络延迟超过connectionTimeout值?

  2. AUTH错误终极奥义

    复制代码

    // 密码里有特殊符号?上双引号护体! jedis.auth("\"your@pass!\"");

  3. 内存 爆炸现场教学 Redis配置必须加maxmemory 256mb(别让Redis变成貔貅)

  4. 连接泄漏灵魂拷问 推荐使用try-with-resources,比健忘症特效药管用


⚡五、性能三连(敲黑板!)

  • Pipeline技术:比双十一快递还快的批量操作

    复制代码
java 复制代码
Pipeline pipeline = jedis.pipelined();
for(int i=0; i<10000; i++){
    pipeline.set("key"+i, "value"+i);
}
pipeline.sync();
  • 集群模式生存指南

    • 单机模式:RedisTemplate

    • 集群模式:JedisCluster


💡最后说点掏心窝子的

代码这东西,光看不动手都是耍流氓!赶紧打开IDE,把Redis玩出花来。遇到问题别慌,记住雷总那句话:"**试错的成本并不高,而错过的成本非常高!**"

(突然正经)对了,用SpringBoot的童鞋可以直接上Spring Data Redis,配置自动注入美滋滋。但底层原理还是这些,万变不离其宗!


🎉彩蛋:当年我用Redis存了10个G的缓存结果没设过期时间...这事我能笑(哭)三年!朋友们引以为戒啊!

相关推荐
夏天的味道٥3 小时前
使用 Java 执行 SQL 语句和存储过程
java·开发语言·sql
IT、木易4 小时前
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。
开发语言·前端·javascript·ecmascript
冰糖码奇朵4 小时前
大数据表高效导入导出解决方案,mysql数据库LOAD DATA命令和INTO OUTFILE命令详解
java·数据库·sql·mysql
好教员好4 小时前
【Spring】整合【SpringMVC】
java·spring
笑远5 小时前
MySQL 主主复制与 Redis 环境安装部署
redis·mysql·adb
Mr.NickJJ5 小时前
JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件
开发语言·javascript·react.js
浪九天6 小时前
Java直通车系列13【Spring MVC】(Spring MVC常用注解)
java·后端·spring
小斌的Debug日记6 小时前
框架基本知识总结 Day16
redis·spring
Archer1946 小时前
C语言——链表
c语言·开发语言·链表
My Li.6 小时前
c++的介绍
开发语言·c++