重磅官宣:Redis OM 发布,Redis 对象映射框架来了!!

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 重磅官宣:Redis OM 发布,Redis 对象映射框架来了!!


image.png

Redis OM

前几天,Redis 发布了对象映射框架:Redis OM,即:Object Mapping,不过目前它还是预览版。


当然,Redis OM 的横空出世不仅仅是对象映射,它更多的是提供一个高级的抽象类库,目标就是让开发人员更简单、方便的使用 Redis 数据。


Redis OM 支持的第一个抽象就是:对象映射,支持基于对象的 Redis 数据持久化、流式查询操作。


目前只支持 4 种开发语言:


Redis OM for Spring(Java)


Redis OM for .NET


Redis OM for Node.js


Redis OM for Python


相信后续会支持更多语言。


Redis OM for Spring

Redis OM for Spring 是对咱们 Java 的支持的对象映射类库。


栈长看了官方仓库源码说明,它其实就是扩展了 Spring Data Redis,可以提供更好的数据搜索、文档模型等,可以理解为 MyBatis-plus 和 MyBatis 的关系,相辅相成的。


快速开始

Redis OM 可以和 Spring Boot 快速集成。


Maven 依赖:

<dependency>
  <groupId>com.redis.om.spring</groupId>
  <artifactId>redis-om-spring</artifactId>
  <version>${version}</version>
</dependency>

Spring Boot 配置:

1.@SpringBootApplication
@Configuration
@EnableRedisDocumentRepositories(basePackages = "cn.javastack.documents.*")
public class RdsDocumentsApplication {
  public static void main(String[] args) {
      SpringApplication.run(RdsDocumentsApplication.class, args);
  }
}

使用 @EnableRedisDocumentRepositories 注释扫描 @Document 注解的 Spring 模型,通过注入实现 RedisDocumentRepository 的 repositories bean,后面就可以进行 CRUD 和自定义查询操作了。


Spring Boot 基础就不介绍了,学习笔记分享给你,实战仓库源码:https://github.com/javastacks/spring-boot-best-practice


对象模型映射

Redis OM 也是通过注解的方式映射对象模型,如下面示例:

/**
 * 商户操作仓库
 * 作者:栈长
 * 来源公众号:Java技术栈
 */
@Data
@RequiredArgsConstructor(staticName = "of")
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@Document
public class Merchant {
  @Id 
  private String id;
  @Searchable 
  private String name;
  @Indexed 
  private Point location;
  @Indexed 
  private Set<String> sites = new HashSet<String>();
  @Indexed 
  private Integer numberOfEmployees;
  @Indexed 
  private Integer yearFounded;
  private String url;
  private boolean publiclyListed;
  // ...
}

注解说明:


@Document: 将 Spring Data 模型映射到 Redis JSON 文档;


@Id: 使用 ULID 取代传统的 UUID 主键生成策略,生成速度更快、更易用;


@Searchable: 声明全文搜索索引;


@Indexable: 声明索引;


定义仓库

Spring Data Redis 这里就不详细介绍了,栈长之前写过一些,不会用的可以关注公众号:Java技术栈,在公众号菜单栏中阅读,栈长都已经整理好了。


使用 Repository 仓库也很简单,继承 RedisDocumentRepository 就行了:

image.png

/**
 * 持久化数据
 * 作者:栈长
 * 来源公众号:Java技术栈
 */
@Bean
CommandLineRunner initData() {
    return args -> {
      // 清空数据
      merchantRepo.deleteAll();
      Merchant javastack1 = Merchant.of(
        "javastack1", "https://javastack.cn", new Point(-122.066540, 37.377690), 526, 2011 //
      );
      javastack1.setTags(Set.of("fast", "scalable", "reliable"));
      Merchant javastack2 = Merchant.of(
        "javastack2", "https://javastack.cn", new Point(-122.124500, 47.640160), 182268, 1975 //
      );
      javastack2.setTags(Set.of("innovative", "reliable"));
      // 持久化数据
      merchantRepo.save(javastack1);
      merchantRepo.save(javastack2);
    };
}

数据查询:

/**
 * 查找单个商户
 * 作者:栈长
 * 来源公众号:Java技术栈
 */
@GetMapping("name/{name}")
Optional<Merchant> byName(@PathVariable("name") String name) {
    return merchantRepo.findMerchantByName(name);
}1.

Redis OM 全程都是通过对象的方式,更好的面向对象编程的思想,不需要多余的对象转换操作了。


总结

Redis OM 对象映射只是扩展了 Spring Data Redis,它不能脱离 Spring Data Redis,更不能脱离其他 Redis 客户端,它只是一个更高层级的抽象库而已,可以使我们更简单、方便的使用 Redis。


可以简单的说它是 Redis 界的 Hibernate,真香!


现在还是预览版,功能也不全,我们还是期待它的正式发布吧,栈长会第一时间跟进和体验分享。


更多的细节可以参考:


https://redis.com/blog/introducing-redis-om-client-libraries/


https://github.com/redis/redis-om-spring


好了,今天的分享就到这里了,后面栈长会分享更多好玩的 Java 技术和最新的技术资讯,关注公众号Java技术栈第一时间推送,我也将主流 Java 面试题和参考答案都整理好了,在公众号后台回复关键字 "面试" 进行刷题。


最后,你觉得 Redis OM 怎么样?欢迎留言讨论!


这真是个好框架,欢迎转发、分享给更多 Javaer 小伙伴们吧!

目录
相关文章
|
NoSQL Java Redis
springboot搭建后台框架 (二)整合Redis
springboot搭建后台框架 (二)整合Redis
117 0
|
1月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
176 86
|
7月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
647 0
分布式爬虫框架Scrapy-Redis实战指南
|
5月前
|
存储 NoSQL 算法
Redis设计与实现——数据结构与对象
Redis 是一个高性能的键值存储系统,其数据结构设计精妙且高效。主要包括以下几种核心数据结构:SDS、链表、字典、跳跃表、整数集合、压缩列表。此外,Redis 对象通过类型和编码方式动态转换,优化内存使用,并支持引用计数、共享对象和淘汰策略(如 LRU/LFU)。这些特性共同确保 Redis 在性能与灵活性之间的平衡。
|
7月前
|
缓存 NoSQL Java
Redis应用—8.相关的缓存框架
本文介绍了Ehcache和Guava Cache两个缓存框架及其使用方法,以及如何自定义缓存。主要内容包括:Ehcache缓存框架、Guava Cache缓存框架、自定义缓存。总结:Ehcache适合用作本地缓存或与Redis结合使用,Guava Cache则提供了更灵活的缓存管理和更高的并发性能。自定义缓存可以根据具体需求选择不同的数据结构和引用类型来实现特定的缓存策略。
416 16
Redis应用—8.相关的缓存框架
|
8月前
|
缓存 NoSQL Java
Redis的操作以及SpringCache框架
以及如何在Spring Boot应用中使用Spring Cache框架集成Redis。Redis提供了丰富的数据结构和高效的内存存储能力,结合Spring Cache框架,可以显著提高应用的性能和响应速度。
128 7
|
12月前
|
存储 消息中间件 NoSQL
Redis 数据结构与对象
【10月更文挑战第15天】在实际应用中,需要根据具体的业务需求和数据特点来选择合适的数据结构,并合理地设计数据模型,以充分发挥 Redis 的优势。
231 64
|
存储 缓存 NoSQL
深入浅出Redis(一):对象与数据结构
深入浅出Redis(一):对象与数据结构
|
NoSQL Java Redis
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
254 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
|
12月前
|
JSON 缓存 NoSQL
Redis 在线查看序列化对象技术详解
Redis 在线查看序列化对象技术详解
192 3

热门文章

最新文章