1. 简介
Redis是用C语言开发的一个开源的高性能键值对数据库
官方提供的测试数据:
50个并发执行100000个请求时读的速度是:110000 次每秒,写的速度是:81000 次每秒
官网:https://redis.io/
中文官网:http://redis.cn/
2. 特点
- 开源的(BSD协议),使用ANSI C 编写,基于内存的且支持持久化,高性能的Key-Value的NoSQL数据库
- 单线程运行,省去了线程上下文切换带来的性能开销,效率更高。
- 支持数据结构类型丰富,有字符串(strings),散列(hashes),列表(lists),集合(sets), 有序集合(sorted sets),位图(bitmaps),hyperloglogs和地理空间(geospatial)索引半径查询。
- 支持众多主流语言的客户端,C、C++、Python、Erlang、R、C#、Java、PHP、Objective-C、Perl、Ruby、Scala、Go、JavaScript
3. 用途
- 缓存
数据查询、短连接、新闻内容等 - 消息队列
秒杀、抢购、12306等 - 数据库
4. NoSql介绍
Not only Sql
NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。
NoSQL有如下优点:易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。
类型 | 主要产品 | 典型应用场景 | 简介 |
---|---|---|---|
KV存储 | Redis/Memcached | 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 | 使用key快速查询到value |
文档存储 | MongoDB/CouchDB | Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) | 使用JSON或类JSON的BSON数据结构 ,存储内容为文档型,能实现关系型数据库的部分功能 |
列存储 | HBase/Cassandra | 分布式的文件系统 | 以列簇式存储,将同一列数据存在一起;便于存储结构化和半结构化的数据,方便做数据压缩和针对某一列或几列的数据查询 |
图存储 | Neo4j/FlockDB | 社交网络,推荐系统等。专注于构建关系图谱 | 图形关系的存储,很好地弥补了关系型数据库在图形存储的不足 |
对象存储 | Db4o/Versant | 云存储 | 通过类似面向对象语言的方式操作数据库,通过对象的方式存储数据 |
XML数据库 | Barkeley DB XML/BaseX | 高效存储XML数据,支持XML内部的查询语法,如Xquery、Xpath |