Redis是一个开源的、网络化的、全内存的、持久的、日志化的,键值数据存储。它是用标准C来实现的。支持的语言包括C, C++, C#, Clojure, Lisp, Erlang, Haskell, Java, JavaScript, Lua, Objective-C, Perl, Php, Python, R, Ruby, Scala, Go和Tcl。从2010年3月15号开始Redis开始由VMware赞助。
一、数据模型
在Redis的外层的模型是由Key映射到Values的字典。Redis与其他结构化存储的最大不同在于它的Value不限于字符串形式,它还可以是下面这些类型:
1、字符串列表
2、字符串集(无序的非重复元素集)
3、排序的字符串集(按浮点数排序的非重复元素集)
4、Key是字符串Value是字符串或整形的哈希表
Value的类型决定了它自己适合什么类型的操作(命令)。Redis支持服务器端高级的原子操作如:交集、并集,它还能区分集合和有序列表以及集合和有序集合
二、持久化
典型的Redis是把所有的数据都放到内存中,但你也可以通过配置把数据放到虚拟内存里面。实现持久化有两个办法:一个叫快照模式,它是一种半持久化模式通过不时的把数据异步的从内存写入磁盘来实现。但从1.1版本后,一个更安全的方法出现——an append-only file(一种日志形式),在内存中修改数据的操作被执行时会把这个操作写入这个日志中。当然Redis也能在后台重新写append-only file日志文件,以防这个日志文件大小无限的增加!
三、复制
Redis支持主从复制。 可以从Redis服务器复制数据到任何的从属服务器。复制有助于读(非写)的扩展和数据的冗余。
四、性能
对于全内存属性的Redis来说,它与在事务提交之前,把每步操作都写磁盘的数据库系统相比更加有效。 它在写和读操作上没有明显的速度差异!
英文原文在这儿。
新博客地址:[译]Redis数据存储——wikipedia