Spring Data Redis 详解

一、Spring Data 简介

Spring Data​ 是 Spring 生态中用于 简化数据库访问​ 的开源框架,核心目标是:

  • 统一数据访问 API

  • 减少样板代码

  • 提高开发效率

主要模块

模块

用途

Spring Data JDBC

关系型数据库访问

Spring Data Redis

Redis 访问

Spring Data Elasticsearch

搜索引擎


二、什么是 Spring Data Redis?

Spring Data Redis​ 是 Spring Data 体系下的一个子模块,专门用于:

简化 Java 应用对 Redis 的访问

✅ 屏蔽底层 Redis 客户端的差异

✅ 提供统一的 Redis 操作模板

👉 本质:对 Redis 客户端的一层封装


三、为什么使用 RedisTemplate 而不是直接用 Jedis?

这是面试和实际开发中非常常见的问题。

1️⃣ 底层实现的变化(重点)

Spring Boot 版本

默认 Redis 客户端

1.x

Jedis

2.x+

Lettuce

  • Jedis:同步、阻塞 IO(BIO)

  • Lettuce:异步、非阻塞 IO(NIO)

📌 高并发场景下 Lettuce 性能更好


2️⃣ RedisTemplate 的优势

✅ 1. 自动管理连接
  • 不需要手动创建 / 释放连接

  • 内置连接池管理

✅ 2. 通用序列化机制
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());

支持多种序列化方式:

  • String

  • JSON

  • JDK 序列化

  • Kryo(自定义)

✅ 3. 面向对象的操作封装
redisTemplate.opsForValue();
redisTemplate.opsForHash();
redisTemplate.opsForList();

比直接使用 Jedis API 更直观、更安全。


3️⃣ 对比总结

对比项

Jedis

RedisTemplate

底层模型

BIO

NIO(Lettuce)

并发性能

一般

连接管理

手动

自动

序列化

需自己处理

内置支持

Spring 集成

结论:Spring Boot 2.x 之后,优先使用 RedisTemplate


四、Spring Data Redis 的启动器

在 Spring Boot 项目中,引入依赖非常简单:

✅ Maven 依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

✅ 自动生效

引入 starter 后:

  • 自动配置 RedisConnectionFactory

  • 自动创建 RedisTemplate

  • 支持 YAML / Properties 配置


五、核心对象关系(理解很重要)

RedisTemplate
   └── ValueOperations
   └── HashOperations
   └── ListOperations
   └── SetOperations
   └── ZSetOperations

六、简单使用示例

@Autowired
private RedisTemplate<String, Object> redisTemplate;

public void test() {
    redisTemplate.opsForValue().set("name", "zhangsan");
    Object name = redisTemplate.opsForValue().get("name");
}

七、总结(适合写在文章结尾)

  • ✅ Spring Data Redis 是 Spring 对 Redis 访问的标准方案

  • ✅ Spring Boot 2.x 默认使用 Lettuce

  • RedisTemplate 优于直接使用 Jedis

  • ✅ 通过 starter 可快速集成

📌 一句话总结

RedisTemplate 是 Spring 生态下操作 Redis 的最佳实践。


如果你愿意,我还可以帮你继续整理:

  • RedisTemplate 序列化踩坑

  • Redis 缓存注解 @Cacheable实战

  • Redis 分布式锁实现

  • Spring Data Redis 面试题汇总

适合一起发成 CSDN 系列文章​ 👍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值