欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Hello,Redis

程序员文章站 2022-03-26 08:16:15
...

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 NoSQL