解释 StringRedisTemplate 类和对象的作用与关系

StringRedisTemplate 类和对象

一、类和对象的关系

1. 类(Class)vs 对象(Object)
java 复制代码
private StringRedisTemplate stringRedisTemplate;
  • StringRedisTemplate:类(模板/蓝图)
  • stringRedisTemplate:对象(根据模板创建的具体实例)
2. 用生活例子理解

类 = 手机的图纸/设计图

对象 = 根据图纸制造出来的具体手机

StringRedisTemplate = 手机的图纸

stringRedisTemplate = 你手里的那部手机

二、StringRedisTemplate 类

1. 是什么?

StringRedisTemplate 是 Spring 提供的 Redis 操作工具类。

2. 作用
  • 操作 Redis 数据库
  • 存储、读取、删除数据
  • 管理 Redis 连接
3. 为什么叫 StringRedisTemplate?
  • 专门操作 Redis 的 String 类型
  • 所有 key 和 value 都是 String 类型
4. 类的特点

类 = 模板/蓝图

  • 定义了可以做什么(方法)

  • 但没有具体的数据

  • 不能直接使用

三、stringRedisTemplate 对象

1. 是什么?

stringRedisTemplate 是根据 StringRedisTemplate 类创建的具体对象。

2. 作用
  • 实际执行 Redis 操作
  • 存储、读取、删除数据
  • 有具体的连接和配置
3. 对象的特点

对象 = 根据类创建的具体实例

  • 有具体的数据

  • 可以执行操作

  • 可以直接使用

四、类和对象的关系图

StringRedisTemplate(类)

↓ Spring自动创建

stringRedisTemplate(对象)

↓ 你可以使用

执行Redis操作

详细流程:
  1. Spring启动

  1. 读取配置文件(application.yaml)

发现Redis配置:host: 127.0.0.1, port: 6379

  1. Spring根据StringRedisTemplate类创建对象

配置好Redis连接

  1. 看到@Resource注解

  1. 自动把对象赋值给stringRedisTemplate变量

  1. 你可以在代码中使用stringRedisTemplate了

五、实际使用

1. 声明对象
java 复制代码
@Resource
private StringRedisTemplate stringRedisTemplate;
  • StringRedisTemplate:类的类型
  • stringRedisTemplate:对象的名字
  • @Resource:让 Spring 自动创建并赋值
2. 使用对象
java 复制代码
//存储数据
stringRedisTemplate.opsForValue.set("key","vaule");
//读取数据
stringRedisTemplate.opsForValue.get("key");
//存储Hash
stringRedisTemplate.opsForHash.putAll("key",map);

六、完整示例

java 复制代码
@Service
public class UserServiceImpl {
    
    // 声明:我需要一个StringRedisTemplate对象
    @Resource
    private StringRedisTemplate stringRedisTemplate;
    //     ↑ 类型(类)        ↑ 名字(对象)
    
    public void someMethod() {
        // 使用对象
        stringRedisTemplate.opsForValue().set("key", "value");
        // ↑ 这里用的是对象,不是类
    }
}

总结

  • StringRedisTemplate:类(模板),定义可以做什么
  • stringRedisTemplate:对象(实例),实际可用的工具
  • 关系:对象是根据类创建的
  • 作用:操作 Redis 数据库
  • 创建:Spring 通过 @Resource 自动创建并赋值

简单记忆:

  • 类 = 图纸
  • 对象 = 根据图纸制造的工具
  • 使用对象来操作 Redis
相关推荐
ALex_zry18 小时前
Redis Cluster 分布式缓存架构设计与实践
redis·分布式·缓存
乔江seven21 小时前
【Flask 进阶】3 从同步到异步:基于 Redis 任务队列解决 API 高并发与长耗时任务阻塞
redis·python·flask
这周也會开心1 天前
Redis与MySQL回写中的数据类型存储设计
数据库·redis·mysql
shuair1 天前
redis缓存预热、缓存击穿、缓存穿透、缓存雪崩
redis·spring·缓存
shuair1 天前
guava布隆过滤器及cuckoo过滤器
redis·guava
上架ipa1 天前
redis图形化客户端功能对比
redis·缓存
indexsunny1 天前
互联网大厂Java面试实战:微服务与Spring生态技术解析
java·spring boot·redis·kafka·mybatis·hibernate·microservices
为什么不问问神奇的海螺呢丶1 天前
n9e categraf redis监控配置
前端·redis·bootstrap
笨蛋不要掉眼泪1 天前
RAG知识库核心API架构全解析:从文档加载到向量检索的完整流程
java·spring boot·redis·ai·架构
学到头秃的suhian1 天前
Redis执行
redis