Redis(Remote Dictionary Server)是一款高性能的内存键值数据库,广泛用于缓存、消息队列和实时数据处理。本文将带你快速掌握在Java中使用Redis的核心操作。

一、Redis核心优势
  • ⚡ 内存存储:微秒级读写性能

  • 📚 多数据结构:支持字符串、哈希、列表等

  • 🔄 持久化:数据可定期保存到磁盘

  • 🧩 分布式:支持主从复制和集群

二、环境准备
  1. 安装Redis

  2. 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"));
}
六、使用场景示例
  1. 会话缓存

    // 存储Session(有效期30分钟)
    jedis.setex("session:abc123", 1800, userData);
  2. 商品秒杀

    // 原子操作防止超卖
    jedis.decr("product_stock:1001");
  3. 实时排行榜

    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 策略

八、学习资源推荐

提示:生产环境务必配置密码认证(requirepass yourpassword)和防火墙规则!

掌握Redis能为Java应用带来显著的性能提升。建议从缓存场景入手,逐步探索其丰富的数据结构和应用模式。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐