NoSQL 解决方案之所以受欢迎,驱动因素之一是其在(尤其)高负载下的性能。由于其数据模型,键值存储处于领先地位,提供了轻量且灵活的数据处理方式。在这篇文章中,我将快速展示如何使用 Spring (Spring Redis) 通过 Spring Data 示例 (RetwisJ) 与键值存储 (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 灵活的数据模型(例如集合交集……)来替代传统关系型数据库中开销较大的联接。