Java链接redis
目录
Java链接redis
一、准备工作就像谈恋爱
首先咱们得来点仪式感是不是?打开你的Maven(Gradle玩家别打我),把这两个宝贝依赖给我焊死在pom.xml里:
选Jedis还是Lettuce?这就好比选机械键盘的青轴红轴,Jedis直来直去像东北老铁,Lettuce异步操作像上海精英。我全都要.jpg
🚀二、连接实战比奶茶简单
方案A:直男式连接(Jedis极简版)
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高定版)
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连接就像拆一次性筷子!上连接池才是正解:
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(20); // 最大连接数,别让你的Redis像早高峰地铁
poolConfig.setMaxIdle(10); // 最大摸鱼连接数
try (JedisPool pool = new JedisPool(poolConfig, "localhost", 6379, 2000, "密码")) {
Jedis jedis = pool.getResource();
// 一顿操作猛如虎...
} // 自动回收连接,妈妈再也不用担心我忘关连接了
🚨四、避坑指南(血泪史)
Timeout异常三连击
- 检查防火墙姿势
- 确认6379端口开了没
- 网络延迟超过
connectionTimeout
值?
AUTH错误终极奥义
// 密码里有特殊符号?上双引号护体! jedis.auth("\"your@pass!\"");
内存 爆炸现场教学 Redis配置必须加
maxmemory 256mb
(别让Redis变成貔貅)连接泄漏灵魂拷问 推荐使用
try-with-resources
,比健忘症特效药管用
⚡五、性能三连(敲黑板!)
- Pipeline技术 :比双十一快递还快的批量操作
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的缓存结果没设过期时间…这事我能笑(哭)三年!朋友们引以为戒啊!