NoSQL起步台阶:简单的Redis

NoSQL正试图打破关系数据型数据库一统天下的局面。Redis也是NoSQL的一种尝试。Redis是什么?其网站上如是说:
A persistent key-value database with built-in net interface written in ANSI-C for Posix systems
Redis最值得拿出来说事的优点就是“快”!Github就用了Redis为自己加速。
我们选择下载稳定的发布版:
http://code.google.com/p/redis/downloads/list
也可以直接获取源码:
http://github.com/antirez/redis
现在的redis与一般的C开源项目相比,非常简单,只有很少的一些文件。它的构建过程也不像其它的项目那些,需要先配置再构建。它只有一个简单的makefile,构建它,只要make一下即可。当然,正如其声称的那样,目前redis只是为Posix系统而打造,所以,如果想在Windows上构建,也许Cygwin是个选择。
先来做一下简单的体验,启动redis的服务器端:

> ./redis-server

redis本身还附带了一个命令行的客户端,用它就可以对redis本身进行测试:

> ./redis-cli set key value
OK
> ./redis-cli get key
value

在上面的这个会话里面,我们通过设置的一个键值对(key和value),然后,用键值取回其对应的值,非常简单。除了最简单的键值对,Redis还支持list、set和有序的set。下面的会话是对list的操作:

> ./redis-cli lpush list 1
OK
> ./redis-cli lpush list 2
OK
> ./redis-cli lrange list 0-1
1. 2
2. 1
> ./redis-cli rpush list 3
OK
> ./redis-cli lrange list 0-1
1. 2
2. 1
3. 3

这里的lpush命令在list的头部添加元素,rpush命令在list的尾部添加元素,而lrange用来查询list里面的元素。
上面我们用的命令行对Redis进行操作,实际上,Redis本身就是具备网络接口的数据库,它有着自己的协议,一种简单的文本协议。这个协议本身并不复杂,只要实现了这个协议就可以与Redis进行互联互通了,所以,Redis有着不同语言的客户端实现,而上面用到的命令行也是用同样的协议实现的。
通过以最普通的telnet直连Redis,我们稍微了解一下这个协议。

> telnet localhost 6379

这里的6379是Redis的缺省端口,下面是一段简单的会话:

SET key 5
value
+OK
GET key
$5
value
QUIT

这段会话等同上面命令行的第一段会话。SET是命令字,key是键值,5是随后值的长度,value就是值的内容,这就是我们发送的内容,+OK是服务器端给出的应答,告诉我们操作成功。然后,我们获取key对应的值,GET是命令字,key是键值,之后是服务器给出的应答,$5是值的长度,value是值的内容。最后的QUIT是断开连接的命令字。
如此简单的Redis,不妨把它当做了解NoSQL的起步台阶。
[整理自网络]

此条目发表在redis/memcached/mongo分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据