Redis是一个Key-Value 存储系统。和Memcached类似,它支持存储的value类型相对更多,
包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持 push/pop、
add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础
上, Redis支持各种不同方式的排序。与 memcached一样,为了保证效率,数据都是缓存在
内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录
文件,并且在此基础上实现了 master-slave(主从)同步。
1.1 Key-Value 存储系统简介
Key-Value Store 是当下比较流行的话题,尤其在构建诸如搜索引擎、IM、P2P、游戏服务器、
SNS等大型互联网应用以及提供云计算服务的时候,怎样保证系统在海量数据环境下的高性
能、高可靠性、高扩展性、高可用性、低成本成为所有系统架构们挖苦心思考虑的重点,而
怎样解决数据库服务器的性能瓶颈是最大的挑战。
按照分布式领域的CAP理论(Consistency、 Availability、Tolerance to network Partitions这三
部分在任何系统架构实现时只可能同时满足其中二点,没法三者兼顾)来衡量,传统的关系
数据库的ACID只满足了 Consistency、 Availability,因此在 Partition tolerance上就很难做得好。
另外传统的关系数据库处理海量数据、分布式架构时候在 Performance、Scalability、
Availability 等方面也存在很大的局限性。
而Key-Value Store 更加注重对海量数据存取的性能、分布式、扩展性支持上,并不需要传统
关系数据库的一些特征,例如:Schema、事务、完整 SQL 查询支持等等,因此在分布式环
境下的性能相对于传统的关系数据库有较大的提升。
包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持 push/pop、
add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础
上, Redis支持各种不同方式的排序。与 memcached一样,为了保证效率,数据都是缓存在
内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录
文件,并且在此基础上实现了 master-slave(主从)同步。
1.1 Key-Value 存储系统简介
Key-Value Store 是当下比较流行的话题,尤其在构建诸如搜索引擎、IM、P2P、游戏服务器、
SNS等大型互联网应用以及提供云计算服务的时候,怎样保证系统在海量数据环境下的高性
能、高可靠性、高扩展性、高可用性、低成本成为所有系统架构们挖苦心思考虑的重点,而
怎样解决数据库服务器的性能瓶颈是最大的挑战。
按照分布式领域的CAP理论(Consistency、 Availability、Tolerance to network Partitions这三
部分在任何系统架构实现时只可能同时满足其中二点,没法三者兼顾)来衡量,传统的关系
数据库的ACID只满足了 Consistency、 Availability,因此在 Partition tolerance上就很难做得好。
另外传统的关系数据库处理海量数据、分布式架构时候在 Performance、Scalability、
Availability 等方面也存在很大的局限性。
而Key-Value Store 更加注重对海量数据存取的性能、分布式、扩展性支持上,并不需要传统
关系数据库的一些特征,例如:Schema、事务、完整 SQL 查询支持等等,因此在分布式环
境下的性能相对于传统的关系数据库有较大的提升。