Java Redis基础入门:快速上手指南
·
Redis(Remote Dictionary Server)是一款高性能的内存键值数据库,广泛用于缓存、消息队列和实时数据处理。本文将带你快速掌握在Java中使用Redis的核心操作。
一、Redis核心优势
-
⚡ 内存存储:微秒级读写性能
-
📚 多数据结构:支持字符串、哈希、列表等
-
🔄 持久化:数据可定期保存到磁盘
-
🧩 分布式:支持主从复制和集群
二、环境准备
-
安装Redis
-
Java项目依赖(Maven):
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.4.3</version> </dependency>
三、Java操作Redis基础代码
import redis.clients.jedis.Jedis;
public class RedisDemo {
public static void main(String[] args) {
// 1. 连接Redis(默认本地6379端口)
Jedis jedis = new Jedis("localhost", 6379);
// 2. 字符串操作
jedis.set("user:101", "Alice");
System.out.println("获取用户: " + jedis.get("user:101")); // 输出: Alice
// 3. 哈希操作
jedis.hset("product:202", "name", "Phone");
jedis.hset("product:202", "price", "5999");
System.out.println("商品信息: " + jedis.hgetAll("product:202"));
// 4. 列表操作
jedis.lpush("tasks", "task1", "task2");
System.out.println("待处理任务: " + jedis.lrange("tasks", 0, -1));
// 5. 设置过期时间(30秒)
jedis.setex("temp_session", 30, "expiring_data");
// 关闭连接
jedis.close();
}
}
四、常用数据结构操作详解
| 类型 | 方法示例 | 场景 |
|---|---|---|
| 字符串 | set/get/incr/decr |
计数器、缓存 |
| 哈希 | hset/hget/hgetAll |
对象属性存储 |
| 列表 | lpush/rpop/lrange |
消息队列、最新动态 |
| 集合 | sadd/smembers/sinter |
标签、共同好友 |
| 有序集合 | zadd/zrangeByScore |
排行榜、延迟队列 |
五、连接池最佳实践
避免频繁创建连接,使用连接池提升性能:
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10); // 最大连接数
try (JedisPool pool = new JedisPool(config, "localhost", 6379);
Jedis jedis = pool.getResource()) {
jedis.set("pool_test", "连接池生效!");
System.out.println(jedis.get("pool_test"));
}
六、使用场景示例
-
会话缓存:
// 存储Session(有效期30分钟) jedis.setex("session:abc123", 1800, userData); -
商品秒杀:
// 原子操作防止超卖 jedis.decr("product_stock:1001"); -
实时排行榜:
jedis.zadd("leaderboard", 95.5, "PlayerA"); jedis.zrevrange("leaderboard", 0, 9); // 获取TOP10
七、常见问题排查
-
连接拒绝:检查Redis服务状态
sudo systemctl status redis -
超时设置:
jedis = new Jedis("localhost", 6379, 5000);(5秒超时) -
内存不足:在
redis.conf中调整maxmemory策略
八、学习资源推荐
-
命令练习工具:Try Redis
提示:生产环境务必配置密码认证(
requirepass yourpassword)和防火墙规则!
掌握Redis能为Java应用带来显著的性能提升。建议从缓存场景入手,逐步探索其丰富的数据结构和应用模式。
更多推荐
所有评论(0)