【Redis | 第三篇】Springboot整合Redis

在这里插入图片描述

3.Springboot整合Redis

3.1Spring Data Redis介绍

Spring Data Redis 是 Spring Framework 提供的一个用于简化 Redis 数据库的访问和操作的模块。它为开发人员提供了一种简洁而强大的方式来与 Redis 进行交互,无需编写大量的样板代码。

Spring Data Redis 提供了以下核心功能:

  1. RedisTemplate:该类是 Spring Data Redis 的主要接口之一,它提供了访问 Redis 的基本操作方法,如读取、写入、删除数据以及对数据进行序列化和反序列化等。RedisTemplate 可以处理多种类型的数据,如字符串、哈希、列表、集合和有序集合等。
  2. RedisRepository:该接口是 Spring Data Redis 的另一个重要组件,它提供了一组通用的 CRUD 操作和查询方法,让开发人员能够轻松地进行数据访问和操作。开发人员只需定义一个接口,继承自 RedisRepository,并按照约定命名方法,Spring Data Redis 就会为其生成相应的实现类。
  3. 注解支持:Spring Data Redis 提供了一系列注解,如 @RedisHash、@Indexed、@Expire 和 @EnableRedisRepositories 等,用于简化对象到 Redis 数据的映射以及查询操作的配置。
  4. 事务支持:Spring Data Redis 集成了 Spring Framework 的事务管理机制,使得开发人员可以通过声明式事务的方式来控制 Redis 数据库的事务操作。
  5. 缓存支持:Spring Data Redis 与 Spring Framework 的缓存机制无缝集成,可以将 Redis 作为缓存存储介质,并提供了简单的注解配置方式注解式的缓存配置。

Spring Data Redis 大大简化了与 Redis 数据库的交互过程,可以减少样板代码的编写和维护成本,提高开发效率。同时,Spring Data Redis 还提供了丰富的特性和灵活的扩展机制,可以根据实际需求进行定制和扩展。无论是在简单的键值存储场景下,还是在复杂的数据操作和查询场景下,Spring Data Redis 都是一个强大的工具,可以帮助开发人员更轻松地使用 Redis。

3.2整合步骤

3.2.1导入依赖

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

3.2.2配置redis数据源

spring:
	redis:
    host: 地址
    port:端口号
    password:密码

3.2.3使用RedisTemplate进行操作

(1)创建RedisTemplate Bean
@Configuration
public class RedisConfig {

  @Bean
  public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(connectionFactory);
    template.setKeySerializer(new StringRedisSerializer());
    template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
    return template;
  }
}

上述示例中使用了 JSON 序列化器 来对值进行序列化和反序列化,你也可以根据需要选择其他序列化器。

(2)注入RedisTemplate

在想要用到RedisTemplate对象的地方中注入 RedisTemplate

@Autowired
private RedisTemplate<String, Object> redisTemplate;
(3)执行Redis操作

使用注入的 RedisTemplate 来进行 Redis 操作,设置键值对、获取值等

// 设置键值对
redisTemplate.opsForValue().set("key", "value");

// 获取值
String value = (String) redisTemplate.opsForValue().get("key");
(4)RedisTemplate操作常用数据类型
  • 字符串类

    1. 设置字符串值

      redisTemplate.opsForValue().set("myKey", "myValue");
      
    2. 获取字符串值

      Object value = redisTemplate.opsForValue().get("myKey");
      
    3. 设置字符串值并指定过期时间(单位:秒)

      redisTemplate.opsForValue().set("myKey", "myValue", 60);
      
    4. 判断键是否存在:

      boolean exists = redisTemplate.hasKey("myKey");
      
    5. 删除键:

      redisTemplate.delete("myKey");
      
    6. **原子递增:**其中,key 是要递增的键名,delta 是递增的步长。递增后的结果会作为返回值返回,并且该操作是原子性的,保证了在多线程或者分布式环境下也能正确处理递增操作

      Long incrementedValue = redisTemplate.opsForValue().increment(String key, long delta);
      
  • 哈希类

    1. 设置哈希字段值:

      redisTemplate.opsForHash().put("myHash", "field", "value");
      
    2. 获取哈希字段值:

      Object value = redisTemplate.opsForHash().get("myHash", "field");
      
    3. 获取所有哈希字段及值:

      Map<Object, Object> hash = redisTemplate.opsForHash().entries("myHash");
      
    4. 删除哈希字段:

      redisTemplate.opsForHash().delete("myHash", "field");
      

3.3小结

通过以上步骤,我们可以在Spring Boot中很容易地整合Redis,并且使用RedisTemplate来执行Redis操作。Spring Data Redis模块为我们提供了一种简洁而强大的方式来与Redis进行交互,无需编写大量的样板代码。同时,还提供了注解支持、事务支持和缓存支持等特性,可以根据实际需求进行定制和扩展。通过这些功能和特性,我们可以更加轻松地处理键值存储场景下的数据访问和操作,也能处理复杂的数据操作和查询场景。因此,Spring Data Redis是一个非常有用的工具和库,对于需要使用Redis进行开发的开发人员来说,是必不可少的。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自梦里的一条鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值