NoSQL 解决方案受欢迎的原因之一是(尤其是在高负载下)的性能。由于其数据模型,键值存储在这一领域处于领先地位,提供了轻量级但灵活的数据处理方式。在本篇文章中,我将通过 Spring Data 的一个示例 (RetwisJ) 快速展示如何使用 Spring (Spring Redis) 来处理键值存储 (Redis),并将应用程序部署到 云 (通过 Cloud Foundry) 上与世界分享。为了有所改变,我甚至还将使用 Windows 作为部署平台。
Redis
键值存储中一个流行的
选择 是
Redis,这是一个开源的、极快的数据库,用 ANSI C 编写,服务器端仅重约 200 KB(是的,是 **千** 字节),整个软件包(包括命令行客户端和一些管理工具)约为 400 KB,并且几乎可以在所有主流平台上使用,这也是它成为示例选择的原因。请注意,除非您想在本地运行示例,否则不需要 Redis 实例。如果需要,对于 Windows 用户(例如作者),我(及时的)使用(并推荐)
这个预打包版本,提供 32 位和 64 位版本。
Spring 和 NoSQL
如果您在 Java 环境中使用 NoSQL,不妨看看
Spring Data:它本身不是一个项目,而是一个项目集合,涵盖了各种新的数据访问技术,如非关系型数据库(如 Redis 或 MongoDB)、MapReduce 框架(例如 Hadoop)以及面向 Java 应用程序的云数据服务。Spring Data 秉承了 **经典的** Spring 理念,通过消除 API 噪音、样板代码和资源管理,并提供一致的编程模型,从而提高了开发者的生产力。它建立在现有的 Spring 功能和项目(如控制反转、生命周期管理、类型转换、可移植数据访问异常、缓存等)之上,因此您可以轻松地将其添加到应用程序中。当然,就像其他 Spring 项目一样,它是开源的,并根据 Apache 许可证提供。
Spring Data Redis
对于 Redis,Spring Data 通过 Spring Data Redis 或简单地称为
Spring Redis 项目提供专用支持。它提供了低级和高级功能,从可移植的 Redis 客户端抽象(允许通过一行配置即可更换不同的 Redis 客户端,如 Jedis、JRedis 或 RJC)到 Redis 支持的原子集合或计数器或发布/订阅支持。该项目的
参考 文档详细介绍了这些主题。
RetwisJ,YATC - 又一个 Twitter 克隆
RetwisJ 的源代码,包括本博文中的代码,可以在 Spring Data Key Value 的 示例项目 中下载。此外,文档 在此处 提供。
RetwisJ 可以看作是 Redis 的 Retwis 示例的 Java 版本:一个简单的 Twitter 克隆,演示了如何用 Redis 的灵活数据模型(如集合 交集…)来替换传统关系数据库中昂贵的连接操作。