Redis

Thu 24 June 2010
  • 装备 tags:
  • kvstore
  • redis published: true comments: true

Redis是一个高性能Key-Value store

Installation

下载解压,make之后就可以直接启动./redis-server 默认读取当前目录下的redis.conf作为配置,亦可参数指定。默认监听6379端口。

Features

支持多种数据结构

相较memcached,redis支持多种数据结构,包括

针对每种数据结构,redis都提供比较完整的操作支持。

高性能

据Wiki上说可以达到110,000 SETs/second, 81,000 GETs/second,数据根据一定的策略存在内存和磁盘上(支持持久化)。从1.1开始支持append-only持久化方式,数据被加到文件中,并进行异步的维护,保证文件的大小。从2.0(即1.3)开始支持virtual memory,当内存占用超过配置文件中vm-max-memory时,数据被写入virtual memory。

Replication

redis支持主从复制,从而提供多台实例进行读操作,可以在slave的配置文件里配置master的地址。

Protocol

redis目前只有基于TCP的文本协议,与memcache类似,有一些改进。
客户端通常发送 命令 参数... 值字节数\r\n 值\r\n

服务端的返回,根据第一个字节,可以判断:

  • - 错误信息
  • + 普通文本信息
  • $ 变长字节数,$6表示CRLF之后有6个字节的字符
  • : 返回一个整数
  • * 返回组数,即*6表示CRLF之后将返回6组变长字符

其他

项目地址 http://code.google.com/p/redis/ http://github.com/antirez/redis/ 开发者twitter http://twitter.com/antirez http://twitter.com/pnoordhuis

Redis功能简单精悍,很符合Unix哲学,核心redis.c只有一万多行,实在是个让人爱不释手的东西。如果可能,争取把他用到生产环境来取代现在的memcached。

The post is brought to you by lekhonee v0.7