【Redis从入门到精通】Java 开发者必看:分布式缓存核心技术详解

一、 为什么要学 Redis?

在传统的 IT 架构中,数据大多存储在关系型数据库(如 MySQL)中。但随着并发量的提升,磁盘 I/O 成了性能瓶颈。

Redis (Remote Dictionary Server) 是一款高性能的开源 Key-Value 数据库

  • 性能极高:纯内存操作,读写速度可达 10W+/秒。
  • 数据类型丰富:支持 String, List, Set, ZSet, Hash。
  • 特性丰富:支持持久化(RDB/AOF)、分布式锁、消息队列、事务等。

二、 Redis 数据类型快速回顾

在 Java 开发中,我们需要根据业务场景选择合适的数据类型:

类型 特点 常见应用场景
String 最基本的类型,二进制安全 缓存、计数器、分布式锁
Hash 适合存储对象 存储用户信息、商品详情
List 双向链表,有序 消息队列、朋友圈点赞列表
Set 无序集合,自动去重 共同好友、抽奖系统
ZSet 有序集合,每个元素有关联分数 排行榜、限流器

三、 Java 连接 Redis 的两种常用方式

方式 1:使用 Jedis (直连模式)

Jedis 是 Redis 官方推荐的 Java 客户端,操作方式与 Redis 命令高度一致。

1. 添加依赖 (Maven)
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.1</version>
</dependency>
2. 代码实现
import redis.clients.jedis.Jedis;

public class JedisDemo {
    public static void main(String[] args) {
        // 1. 获取连接 (地址, 端口)
        Jedis jedis = new Jedis("localhost", 6379);
        // 如果有密码
        // jedis.auth("password");

        // 2. 操作 String
        jedis.set("name", "Gemini");
        System.out.println("获取值:" + jedis.get("name"));

        // 3. 操作 Hash
        jedis.hset("user:1", "age", "20");
        System.out.println("查询属性:" + jedis.hget("user:1", "age"));

        // 4. 关闭连接
        jedis.close();
    }
}

方式 2:Spring Boot 整合 Redis (企业级推荐)

Spring Boot 默认集成了 Lettuce 客户端,并通过 RedisTemplate 提供了极简的封装。

1. 添加依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2. 配置文件 (application.yml)
spring:
  redis:
    host: localhost
    port: 6379
    password: 
    lettuce:
      pool:
        max-active: 8  # 最大连接数
3. 编写核心代码
@Service
public class RedisService {

    @Autowired
    private StringRedisTemplate redisTemplate; // 专门处理 String 类型

    public void demo() {
        // 设置缓存,过期时间 60 秒
        redisTemplate.opsForValue().set("login:code:13800138000", "520131", 60, TimeUnit.SECONDS);

        // 获取值
        String code = redisTemplate.opsForValue().get("login:code:13800138000");
        
        // 操作 Hash
        redisTemplate.opsForHash().put("pet:info", "name", "旺财");
    }
}

四、 进阶:Redis 典型应用场景流程图

为了更好地理解 Redis 在系统中的位置,请参考以下 缓存一致性方案 的典型架构:

  1. 读请求:先查询 Redis。如果命中则返回;若未命中,查询 DB 并写入 Redis 后返回。
  2. 写请求:先更新 DB,再删除/更新 Redis 缓存(根据业务策略选择)。

五、 小结与建议

在入门 Redis 时,建议初学者:

  1. 先在 Linux 环境下安装一次 Redis,熟悉 redis-cli 的基本命令。
  2. 理解持久化机制:了解 RDB(快照)和 AOF(日志)的区别。
  3. 注意大 Key 问题:避免在一个 Key 中存储过大的数据,防止网络阻塞。

下一篇预告:

我们将探讨 Redis 如何解决缓存雪崩、穿透和击穿。如果你觉得这篇入门教程对你有帮助,欢迎 点赞、收藏、关注

作者: [CodeToGym]

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐