【Redis从入门到精通】Java 开发者必看:分布式缓存核心技术详解
·
【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 在系统中的位置,请参考以下 缓存一致性方案 的典型架构:
- 读请求:先查询 Redis。如果命中则返回;若未命中,查询 DB 并写入 Redis 后返回。
- 写请求:先更新 DB,再删除/更新 Redis 缓存(根据业务策略选择)。
五、 小结与建议
在入门 Redis 时,建议初学者:
- 先在 Linux 环境下安装一次 Redis,熟悉
redis-cli的基本命令。 - 理解持久化机制:了解 RDB(快照)和 AOF(日志)的区别。
- 注意大 Key 问题:避免在一个 Key 中存储过大的数据,防止网络阻塞。
下一篇预告:
我们将探讨 Redis 如何解决缓存雪崩、穿透和击穿。如果你觉得这篇入门教程对你有帮助,欢迎 点赞、收藏、关注!
作者: [CodeToGym]
更多推荐

所有评论(0)