- 内容提要
- 序
- 前言
- 第一部分 背景知识
- 第 1 章 Spring Data 项目
- 第 2 章 Repository:便利的数据访问层
- 第 3 章 使用 Querydsl 实现类型安全的查询
- 第二部分 关系型数据库
- 第 4 章 JPA Repository
- 第 5 章 借助 Querydsl SQL 实现类型安全的 JDBC 编程
- 第三部分 NoSQL
- 第 6 章 MongoDB: 文档存储
- 第 7 章 Neo4j:图数据库
- 第 8 章 Redis:键/值存储
- 第四部分 快速应用开发
- 第 9 章 使用 Spring Roo 实现持久层
- 第 10 章 REST Repository 导出器
- 第五部分 大数据
- 第 11 章 Spring for Apache Hadoop
- 第 12 章 使用 Hadoop 分析数据
- 第 13 章 使用 Spring Batch 和 Spring Integration 创建大数据管道
- 第六部分 数据网格
- 第 14 章 分布式数据网格:GemFire
- 关于封面
8.1 Redis 概述
Redis( http://redis.io )是非常高性能和轻量级的数据存储。它提供了键/值的数据访问方式来持久化字节数组、列表、集合以及哈希数据结构。它支持原子级的计数器(counter)并具有一个高效的基于主题的发布/订阅消息功能。Redis 易于安装和运行,但最重要的一点在于其非常非常快的数据访问能力。它所缺乏的是复杂的查询功能(如在 Riak( wiki.basho.com/Riak.html )或 MongoDB( http://www.mongodb.org/ )中所提供的),但是会以速度和效率来弥补。Redis 服务器也可以进行集群,从而提供非常灵活的部署方式。通过使用安装时自带的 redis-cli 二进制文件,可以很容易地通过命令行与 Redis 进行交互。
8.1.1 搭建 Redis
为了使用 Redis,可能希望在本地进行安装。根据平台不同,安装过程可能简单到只需输入一个文字命令。最简单的安装过程,如示例 8-1 所示,是在 Mac OS X 上借助 Homebrew( http://mxcl.github.com/homebrew )来安装。在其他的 UNIX 系统中,如果你基于源码构建服务器的话,这是原生支持的(构建指令在 Redis 的站点上可以找到,它与我们所构建的其他*NIX 包并无二致 - 也就是将其解压、通过 cd 命令转移到指定目录中,然后输入 make)。Redis 的下载页面( http://redis.io/download )也列出了许多非官方的版本,可将 Redis 安装到 Win32/64 平台,尽管它们没有太多考虑到产品的质量。在本章中使用*NIX 版本,这也是 Redis 最擅长的地方。
示例 8-1 借助 Homebrew 在 Mac OS X 上安装 Redis
这样很快就可以让服务器运行起来,并且看到一些结果,我们在前台使用一个终端来运行服务器。这对于调试来说是很好的,因为它会直接将日志打印在控制台上,这样就能够知道服务器在内部是如何运行的。当然,要让服务器在机器重启后都能自动运行的启动脚本是因平台而异的。这个搭建过程作为练习留给读者。
我们使用服务器的默认设置,所以启动它非常简单,只需执行 redis-server,如示例 8-2 所示。
示例 8-2 启动服务器
8.1.2 使用 Redis Shell
Redis 自带了非常有用的命令行 Shell,这样就能够以交互的方式或者通过批处理任务的方式来进行使用。我们只会用到 Shell 的交互式部分,以便查看服务器内部的状态、查找数据并与之进行交互。命令行 Shell 有一个扩展了的帮助系统,如示例 8-3 所示,所以当使用它的时候,连续敲击 Tab 键就可以得到 Shell 的帮助提示。
示例 8-3 与 Redis 服务器进行交互
Redis 文档( http://redis.io/commands )很有用,因为它对所有可用的命令都进行了整体的介绍并展示了一些使用示例。请保持这一页很容易翻阅到,因为在后面你会经常参考它。
花点时间来熟悉基本的 SET 和 GET 命令是有好处的。让我们花一点时间来看看如何插入和检索数据,如示例 8-4 所示。
示例 8-4 在 Redis 中 SET 和 GET 数据
需要注意的一点是,当 SET 值的时候,我们并没有在值 1 上加引号。Redis 并不会像其他的数据存储那样具有数据类型,所以它将所有的值都视为一串字节。在命令行中,可以看到它们会作为字符串进行打印。当通过 GET 得到返回的数据时,在命令行 Shell 看到的会是“1”。可以看到,使用了引号,那么它就是字符串。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论