• 2010-04-01

    Hello,Redis

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://dreamhead.blogbus.com/logs/61443218.html

    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大佬的QQ群正在招募各路redis朋友,不管你是正在使用redis,还是在研究redis,或者是对redis感兴趣,你都可以加入到我们的阵营。大家一起讨论redis各类用法,key-value、list、set、map使用,redis优化、内存监控、主从配置等等问题,这里都会有高手给你解决。国内顶尖级别的redisQQ群是 43016055

  • 简洁给力!
  • 是啊,现实就是有人还固执的生活在远古时代,并且弄得现代人好像是异类。