各位代码急急国王!今天传授一套Redis九阳神功,让你在5分钟内把增删改查玩出花!(前提是你的网速别比树懒还慢)准备好你的IDE,咱们直接起飞!
第一式:连接Redisの光速秘籍
依赖注入 ( Maven 版) :
<!-- 选妃环节:Jedis or Lettuce? -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
创建连接の闪电战:
public class RedisCrashCourse {
private static final JedisPool pool = new JedisPool("localhost", 6379);
public static void main(String[] args) {
// 自动回收连接,比共享单车还方便
try (Jedis jedis = pool.getResource()) {
jedis.auth("你的密码不是admin吧?");
// 接下来开始表演杂技
}
}
}
第二式:增删改查の四重奏
1. 增( SET ) - 比发微信还简单:
// 普通青年存字符串
jedis.set("肥宅快乐水", "可口可乐");
// 文艺青年存对象(需要序列化)
User user = new User("李狗蛋", 18);
jedis.set("user:1001".getBytes(), serialize(user));
// 二逼青年存过期时间(10秒自毁模式)
jedis.setex("临时验证码", 10, "ABCDE");
2. 查(GET) - 比翻聊天记录还快:
// 取字符串
String drink = jedis.get("肥宅快乐水");
// 取对象(反序列化警告)
byte[] userData = jedis.get("user:1001".getBytes());
User user = (User) deserialize(userData);
// 取所有符合要求的key(慎用!)
Set<String> keys = jedis.keys("user:*");
3. 改( SET ) - 覆盖大法好:
// 直接覆盖原有值
jedis.set("肥宅快乐水", "百事可乐"); // 可口党震怒!
// 只更新已存在的key(防止手滑创建新key)
jedis.set("存在的key", "新值", SetParams.setParams().xx());
4. 删( DEL ) - 毁尸灭迹专用:
// 单杀
jedis.del("肥宅快乐水");
// 群灭
jedis.del("user:1001", "user:1002");
// 危险动作!请勿模仿!
// jedis.flushDB(); // 删库跑路快捷键
第三式:性能狂魔の骚操作
1. 管道操作(性能提升10倍) :
try (Pipeline pipeline = jedis.pipelined()) {
for (int i = 0; i < 1000; i++) {
pipeline.set("key" + i, "value" + i);
}
pipeline.sync(); // 这波操作像同时发射一千发火箭
}
2. 批量操作大礼包:
// 批量获取
List<String> values = jedis.mget("key1", "key2", "key3");
// 批量设置
Map<String, String> data = new HashMap<>();
data.put("name", "王铁柱");
data.put("age", "28");
jedis.mset(data);
3. 原子计数器:
// 文章阅读量统计
jedis.incr("article:666:views"); // 原子+1
jedis.incrBy("article:666:views", 10); // 原子+10
第四式:避坑指南の血泪史
坑1:键命名太随意
❌ 错误示范:jedis.set("userData", ...)
✅ 正确姿势:user:1001:profile
(用冒号分层,像快递柜编号)
坑2:忘记设置过期时间
内存泄漏警告!使用expire
命令:
jedis.setex("验证码", 300, "123456"); // 5分钟自毁
// 或者后续设置
jedis.expire("验证码", 300);
坑3:连接泄漏
永远使用try-with-resources:
try (Jedis jedis = pool.getResource()) { // 自动关闭连接
// 一顿操作
}
// 不用手动close!不用手动close!不用手动close!
终极大招:性能监控の天眼
// 查看Redis状态(比体检报告还详细)
String info = jedis.info();
// 监控关键指标
System.out.println("内存使用:" + jedis.info("memory"));
System.out.println("连接数:" + jedis.info("clients"));
System.out.println("命令统计:" + jedis.info("commandstats"));
最后送上祖传忠告:
生产环境禁用KEYS命令!
(除非你想体验KEYS *
让Redis当场去世的刺激)
现在你已经掌握Redis闪电五连鞭!要不要挑战用Redis实现秒杀系统?