Redis简述

简述
Redis是Remote Dictionary Server的缩写,使用ANSI C语言编写,是一款支持网络、可基于内存亦可持久化的日志型、Key-Value数据库.在Redis在官方网站的的副标题是A persistent key-value database with built-in net interface written in ANSI-C for Posix systems,这个定义偏向key value store。
因为它的高性能都是基于内存操作的基础,所以一些看法则认为Redis是一个memory database。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis在内存中设计了各种数据类型,让业务能够高速原子的访问这些数据结构,并且不需要关心持久存储的问题,从架构上解决了前面两种存储需要走一些弯路的问题。
数据结构
string(字符串)是最简单的类型,与Memcached一样的类型,一个key对应一个value,其上支持的操作与Memcached的操作类似。但它的功能更丰富。
list(双向链表)是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。
dict(hash表)  是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
zset(排序set) 是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。

posted @ 2011-10-10 18:00  hongchaoxing  阅读(215)  评论(0编辑  收藏  举报