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


    前言:

            本文算是一期番外,介绍一下如何在Java中使用Reids ,而其实基于Java我们有很多的开源框架可以用来操作redis,而我们今天选择介绍的是其中比较常用的一款:Spring Data Redis57e1217aae4e4dcc8642ab40a3a0fb5c.png

    目录

    前言:

    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依赖:

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-data-redisartifactId>
    4. <version>2.7.3version>
    5. dependency>

    2.配置redis数据源:

    1. spring:
    2. redis:
    3. host: 地址
    4. port:端口号
    5. password:密码

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

    1. @Configuration
    2. @Slf4j
    3. public class RedisConfguration {
    4. @Bean
    5. public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory)
    6. {
    7. log.info("开始创建redis模板对象....");
    8. RedisTemplate redisTemplate = new RedisTemplate();
    9. //设置redis的连接工厂对象
    10. redisTemplate.setConnectionFactory(redisConnectionFactory);
    11. //设置key的序列化器
    12. redisTemplate.setKeySerializer(new StringRedisSerializer());
    13. return redisTemplate;
    14. }
    15. }

    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

     

     

  • 相关阅读:
    FastJson远程命令执行漏洞学习笔记
    Python 集成 Nacos 配置中心
    2017年亚太杯APMCM数学建模大赛B题喷雾轨迹规划问题求解全过程文档及程序
    RPA是什么?推荐让电商运营10倍提效的自动化工具
    Fast-DDS库的安装教程
    OCR开源工具箱MMOCR安装及使用示例(英文识别)
    vue3项目部署报错 Faled to esolve entry for pacdlage “hntlify/sthared“
    A. XOR Mixup
    Apollo学习笔记(28)贝叶斯滤波
    【Linux】——初识进程
  • 原文地址:https://blog.csdn.net/fckbb/article/details/133831458