Redis
Spring Data 支持的一种键值存储是 Redis。引用 Redis 项目主页的话:
Redis 是一个高级的键值存储。它类似于 memcached,但数据集是非易失性的,并且值可以是字符串(就像 memcached 一样),也可以是列表、集合和有序集合。所有这些数据类型都可以通过原子操作来操作,例如 push/pop 元素、添加/删除元素、在服务器端执行集合的并集、交集、差集等。Redis 支持不同类型的排序功能。
Spring Data Redis 为从 Spring 应用轻松配置和访问 Redis 提供了支持。它提供了低级别和高级别的抽象来与存储进行交互,使用户免受基础设施问题的困扰。
Spring Data 对 Redis 的支持包含广泛的功能:
-
RedisTemplate
和ReactiveRedisTemplate
helper 类,在执行常见的 Redis 操作时提高了生产力。包括对象和值之间集成的序列化。 -
将异常转换为 Spring 可移植的数据访问异常层次结构。
-
Repository 接口的自动实现,包括支持自定义查询方法。
-
功能丰富的 对象映射,集成了 Spring 的转换服务。
-
基于注解的映射元数据,可扩展以支持其他元数据格式。
-
通过 Spring 的缓存抽象进行 Redis 缓存集成。
-
Redis 发布/订阅消息和 Redis Stream 监听器。
-
Java 的 Redis 集合实现,例如
RedisList
或RedisSet
。
为何选择 Spring Data Redis?
Spring Framework 是领先的全栈 Java/JEE 应用框架。它提供了一个轻量级容器和非侵入式编程模型,通过使用依赖注入、AOP 和可移植服务抽象来实现。
NoSQL 存储系统为传统的 RDBMS 提供了替代方案,以实现横向扩展和速度。在实现方面,键值存储是 NoSQL 领域中最大(也是最古老)的成员之一。
Spring Data Redis (SDR) 框架通过消除与存储交互所需的冗余任务和样板代码,使得编写使用 Redis 键值存储的 Spring 应用变得容易,这一切得益于 Spring 卓越的基础设施支持。
Redis 支持高层概览
Redis 支持提供了几个组件。对于大多数任务来说,高层抽象和支持服务是最佳选择。请注意,在任何时候,你都可以在不同层之间切换。例如,你可以获取一个低层连接(甚至原生库)来直接与 Redis 通信。