Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个灵活的高性能key-value数据结构存储,可以用来作为数据库,缓存和消息队列。
Redis 比其他 key-value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。
- Redis不仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持主从复制,即master-slave模式的数据备份。
Redis的特点
- 高性能: Redis将所有数据集存储在内存中,可以在入门级Linux机器中每秒写(SET)11万次,读(GET)8.1万次。Redis支持Pipelining命令,可一次发送多条命令来提高吞吐率,减少通信延迟。
- 持久化:当所有数据都存在于内存中时,可以根据自上次保存以来经过的时间和/或更新次数,使用灵活的策略将更改异步保存在磁盘上。Redis支持仅附加文件(AOF)持久化模式。
- 数据结构: Redis支持各种类型的数据结构,例如字符串,散列,集合,列表,带有范围查询的有序集,位图,超级日志和带有半径查询的地理空间索引。
- 原子操作:处理不同数据类型的Redis操作是原子操作,因此可以安全地设置或增加键,添加和删除组中的元素,增加计数器等。
- 支持的语言: Redis支持许多语言,如ActionScript,C,C++,Erlang,Go,Haskell,Java,JavaScript(Node.js),Lua,Objective-C,Perl,PHP,Python,R,Ruby,Rust,Scala,Smalltalk和Tcl。
- 主/从复制: Redis遵循非常简单快速的主/从复制。配置文件中只需要一行来设置它,而Slave在Amazon EC2实例上完成10 MM key集的初始同步需要21秒。
- 分片: Redis支持分片。与其他键值存储一样,跨多个Redis实例分发数据集非常容易。
- 可移植: Redis是用ANSI C编写的,适用于大多数POSIX系统,如Linux,BSD,Mac OS X,Solaris等。