【从零开始学习Redis | 第三篇】在Java中操作Redis

前言:

        本文算是一期番外,介绍一下如何在Java中使用Reids ,而其实基于Java我们有很多的开源框架可以用来操作redis,而我们今天选择介绍的是其中比较常用的一款:Spring Data Redis【从零开始学习Redis | 第三篇】在Java中操作Redis_第1张图片

目录

前言:

Spring Data Redis的简单介绍:

使用 Spring Data Redis 的方式:

RedisTemplate操作常用数据类型:

字符串类:

哈希类:

总结:


 

 

Spring 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。

使用 Spring Data Redis 的方式:

1.导入Spring Data Redis的 maven依赖:

 
     org.springframework.boot
     spring-boot-starter-data-redis
     2.7.3
 

2.配置redis数据源:

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

3.编写配置类,创建RedisTemplate对象:

@Configuration
@Slf4j
public class RedisConfguration {
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory)
    {
        log.info("开始创建redis模板对象....");
        RedisTemplate redisTemplate = new RedisTemplate();
        //设置redis的连接工厂对象
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //设置key的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

4.使用RedisTemplate 对象操作Redis

 

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. 原子递增:

    Long incrementedValue = redisTemplate.opsForValue().increment(

哈希类:

  1. 设置哈希字段值:

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

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

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

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

在这里我们就简单的先介绍这两个,其他的类型其实使用方法与我们介绍的这两种大同小异。

总结:

在Java中操作 Redis 是通过 Spring Data Redis 提供的 RedisTemplate 或 StringRedisTemplate 这两个模板类来实现的。它们提供了丰富的方法来操作 Redis 中的不同数据类型。

通过 RedisTemplate,我们可以方便地进行键值对数据的操作,包括字符串类型、哈希类型、列表类型、集合类型和有序集合类型等。它提供了 set、get、delete 等基本方法来操作数据,并且支持设置过期时间、原子递增等高级功能。

针对字符串类型的操作,可以使用 StringRedisTemplate,它专注于处理字符串数据,提供了更加简洁的 API 来设置和获取字符串值,并且支持设置过期时间、判断键是否存在等功能。

需要注意的是,RedisTemplate 和 StringRedisTemplate 默认使用不同的序列化方式,StringRedisTemplate 使用 StringRedisSerializer 进行序列化,而 RedisTemplate 使用 JdkSerializationRedisSerializer 进行序列化。根据需求,我们可以自定义序列化方式来适应不同的数据存储和读取需求。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

69e9169c980f43e0aad31ff9ada88a9c.png

 

 

你可能感兴趣的:(【从零开始学习Redis】,学习,java,开发语言)