当前位置: 首页 > news >正文

【从零开始学习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依赖:

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

2.配置redis数据源:

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

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

@Configuration
@Slf4j
public class RedisConfguration {@Beanpublic 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<Object, Object> 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

 

 

http://www.lryc.cn/news/194187.html

相关文章:

  • vim、gcc/g++、make/Makefile、yum、gdb
  • 2022最新版-李宏毅机器学习深度学习课程-P13 局部最小值与鞍点
  • ARM架构的基本知识
  • 网络安全(黑客技术)——如何高效自学
  • 云原生场景下高可用架构的最佳实践
  • 图论-最短路径算法-弗洛伊德算法与迪杰斯特拉算法
  • [23] IPDreamer: Appearance-Controllable 3D Object Generation with Image Prompts
  • 深入理解React中的useEffect钩子函数
  • 数字化时代的财务管理:挑战与机遇
  • 网络通信协议-HTTP、WebSocket、MQTT的比较与应用
  • 【深度学习】深度学习实验四——循环神经网络(RNN)、dataloader、长短期记忆网络(LSTM)、门控循环单元(GRU)、超参数对比
  • DB2分区表详解
  • 基本地址变换机构
  • 以单颗CMOS摄像头重构三维场景,维悟光子发布单目红外3D成像模组
  • Jinja2模板注入 | python模板注入特殊属性 / 对象讲解
  • 一致性公式证明
  • allegro中shape的一些基本操作(一)——添加和修改shape
  • HBuilder创建uniapp默认项目导入uview(胎教)
  • C语言基础算法复习
  • PyQt界面里如何加载本地视频以及调用摄像头实时检测(小白入门必看)
  • Ubuntu:VS Code IDE安装ESP-IDF【保姆级】
  • 软考高级系统架构设计师系列之:快速掌握软件工程核心知识点
  • Java基础面试-ArrayList和LinkedList的区别
  • 如何从 Pod 内访问 Kubernetes 集群的 API
  • 计网面试复习自用
  • 【Android 性能优化:内存篇】——WebView 内存泄露治理
  • C++入门(一)
  • C#控制台程序读取输入按键非阻塞方式
  • 小程序框架->框架,视图层,生命周期(逻辑层)
  • Spring framework Day14:配置类的Lite模式和Full模式